diff --git a/Lames du Cardinal v2/.gitignore b/Lames du Cardinal v2/.gitignore new file mode 100644 index 000000000000..c6bba5913812 --- /dev/null +++ b/Lames du Cardinal v2/.gitignore @@ -0,0 +1,130 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* diff --git a/Lames du Cardinal v2/assets/dragonnoir.jpg b/Lames du Cardinal v2/assets/dragonnoir.jpg new file mode 100644 index 000000000000..7dc100592f5d Binary files /dev/null and b/Lames du Cardinal v2/assets/dragonnoir.jpg differ diff --git a/Lames du Cardinal v2/assets/dragonrouge.jpg b/Lames du Cardinal v2/assets/dragonrouge.jpg new file mode 100644 index 000000000000..8d493e3d63d8 Binary files /dev/null and b/Lames du Cardinal v2/assets/dragonrouge.jpg differ diff --git a/Lames du Cardinal v2/assets/ecaille.png b/Lames du Cardinal v2/assets/ecaille.png new file mode 100644 index 000000000000..38f003d4459c Binary files /dev/null and b/Lames du Cardinal v2/assets/ecaille.png differ diff --git a/Lames du Cardinal v2/assets/epee.png b/Lames du Cardinal v2/assets/epee.png new file mode 100644 index 000000000000..b603765f9d1b Binary files /dev/null and b/Lames du Cardinal v2/assets/epee.png differ diff --git a/Lames du Cardinal v2/assets/griffe.png b/Lames du Cardinal v2/assets/griffe.png new file mode 100644 index 000000000000..524a8f617540 Binary files /dev/null and b/Lames du Cardinal v2/assets/griffe.png differ diff --git a/Lames du Cardinal v2/assets/sang.png b/Lames du Cardinal v2/assets/sang.png new file mode 100644 index 000000000000..6de262b9e28e Binary files /dev/null and b/Lames du Cardinal v2/assets/sang.png differ diff --git a/Lames du Cardinal v2/assets/souffle.png b/Lames du Cardinal v2/assets/souffle.png new file mode 100644 index 000000000000..03cbddd010c7 Binary files /dev/null and b/Lames du Cardinal v2/assets/souffle.png differ diff --git a/Lames du Cardinal v2/lames_cardinal.css b/Lames du Cardinal v2/lames_cardinal.css new file mode 100644 index 000000000000..85ee05bb8f09 --- /dev/null +++ b/Lames du Cardinal v2/lames_cardinal.css @@ -0,0 +1,675 @@ +.charsheet main, +.charsheet nav, +.charsheet div { + display: flex; + font-size: 12px; + padding: 3px; +} +.charsheet div.col { + flex-direction: column; + width: calc(100% - 6px); +} +.charsheet div.col-2 { + flex-direction: column; + width: calc(50% - 6px); +} +.charsheet label { + font-weight: normal; +} +.charsheet main { + margin-top: -20px; + margin-left: -8px; + width: 100%; + min-width: 845px; + min-height: 590px; + flex-direction: row; + flex-wrap: wrap; + background-size: 850px 1180px; + background-repeat: no-repeat; + background-origin: border-box; +} +.charsheet nav#menu { + height: 50px; + flex-grow: 0; +} +.charsheet #container { + flex: 1; + width: 100%; +} +.charsheet section.page { + display: none; + flex-flow: column; + width: 100%; +} +.charsheet div.repcontrol { + display: flex; +} +.charsheet div.repcontrol > .btn { + font-size: 0.85em; + padding: 2px; +} +.charsheet input[name=attr_page][value=ressources] ~ main section#page-ressources, .charsheet input[name=attr_page][value=escrime] ~ main section#page-escrime, .charsheet input[name=attr_page][value=competences] ~ main section#page-competences, .charsheet input[name=attr_page][value=personnage] ~ main section#page-personnage { + display: flex; +} +.charsheet input[name=attr_page][value=personnage] ~ main, .charsheet input[name=attr_page][value=competences] ~ main { + background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/lames-cardinal-v2/assets/dragonrouge.jpg"); +} +.charsheet input[name=attr_page][value=escrime] ~ main, .charsheet input[name=attr_page][value=ressources] ~ main { + background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/lames-cardinal-v2/assets/dragonnoir.jpg"); +} + +.charsheet h3, .charsheet h4 { + font-family: "Arial"; + font-variant-caps: small-caps; +} +.charsheet h3.blue, .charsheet h4.blue { + color: #395b63; +} +.charsheet h3.red, .charsheet h4.red { + color: #672418; +} +.charsheet h3 { + font-size: 1.3em; +} +.charsheet h4 { + font-size: 1.2em; +} +.charsheet label > span { + font-weight: bold; + font-style: italic; + font-size: 0.9em; +} +.charsheet input { + font-family: "Shadows Into Light"; + font-style: italic; + font-size: 12pt; + padding: 0; +} + +.charsheet { + /** Expand switches */ +} +.charsheet button.roll[type=roll], +.charsheet button.roll[type=action] { + display: flex; + width: 20px; + height: 20px; + font-size: 20px; + line-height: 20px; + background: none; + border: none; + border-radius: 0; + margin: 0; + margin-top: 3px; + box-shadow: none; + padding: 2px 3px 0 3px; +} +.charsheet button.roll[type=roll]::before, +.charsheet button.roll[type=action]::before { + font-family: "dicefontd20"; + content: "0"; +} +.charsheet button.roll[type=roll].small, +.charsheet button.roll[type=action].small { + width: 16px; + height: 16px; + line-height: 16px; + font-size: 16px; + margin-top: 0; +} +.charsheet button.roll[type=roll]:hover, .charsheet button.roll[type=roll]:hover::before, +.charsheet button.roll[type=action]:hover, +.charsheet button.roll[type=action]:hover::before { + font-weight: bold; +} +.charsheet button.roll[type=roll].white::before, +.charsheet button.roll[type=action].white::before { + color: white; +} +.charsheet nav { + width: 100%; +} +.charsheet nav > label.navRadio { + padding: 5px; + align-items: center; + justify-content: baseline; + font-weight: bold; +} +.charsheet nav > label.navRadio > input[type=radio] { + opacity: 0; +} +.charsheet nav > label.navRadio > input[type=radio] + span::before { + width: 12px; + height: 12px; + rotate: 45deg; + border: solid black 1px; + display: inline-flex; + content: " "; + margin-right: 5px; +} +.charsheet nav > label.navRadio > input[type=radio] + span::after { + content: attr(title); +} +.charsheet nav > label.navRadio > input[type=radio]:checked + span::before { + background-color: gray; +} +.charsheet nav > label.navRadio > input[type=radio]:checked + span::after { + text-decoration: underline; + text-decoration-color: #900; +} +.charsheet select option.optgroup[disabled] { + color: black; + background: #ddd; + font-weight: bold; +} +.charsheet label.textLabelled { + border-bottom: 1px dotted black; + width: calc(100% - 8px); +} +.charsheet label.textLabelled > span { + font-style: italic; + font-weight: bold; + width: 20%; +} +.charsheet label.textLabelled > input[type=text] { + border: none; + background: none; + width: calc(80% - 10px); + margin-left: 10px; +} +.charsheet label > input[type=checkbox][name=attr_expand] { + position: absolute; + width: 10px; + opacity: 0; + height: 20px; +} +.charsheet label > input[type=checkbox][name=attr_expand] ~ span { + width: 100%; + vertical-align: center; +} +.charsheet label > input[type=checkbox][name=attr_expand] ~ span::before { + display: flex; + content: "►"; + justify-content: center; +} +.charsheet label > input[type=checkbox][name=attr_expand]:checked ~ span::before { + content: "▼"; +} + +.charsheet .nstate { + width: 15px; + height: 15px; + padding: 0; + border: 1px solid black; + background: #eee; + margin: 2px 0; +} +.charsheet .nstate > .nstateopt { + display: none; + font-weight: bold; + margin-left: -12px; + text-align: center; +} +.charsheet .nstate.healthbox { + border-radius: 10px; + border: 2px solid #395b63; +} +.charsheet .nstate.healthbox > .nstate { + width: 13px; + height: 12px; + border-radius: 10px; +} +.charsheet .nstate.healthbox > button[type=action] { + opacity: 0; +} +.charsheet .nstate.healthbox > input[type=hidden][value="1"] ~ span.nstateopt.health_tenacity, .charsheet .nstate.healthbox > input[type=hidden][value="2"] ~ span.nstateopt.health_longTenacity, .charsheet .nstate.healthbox > input[type=hidden][value="3"] ~ span.nstateopt.health_wound { + display: flex; +} + +.charsheet .fillLeft > input[type=hidden][value="8"] ~ label:nth-of-type(9) > span::before, .charsheet .fillLeft > input[type=hidden][value="8"] ~ label:nth-of-type(8) > span::before, .charsheet .fillLeft > input[type=hidden][value="8"] ~ label:nth-of-type(7) > span::before, .charsheet .fillLeft > input[type=hidden][value="8"] ~ label:nth-of-type(6) > span::before, .charsheet .fillLeft > input[type=hidden][value="8"] ~ label:nth-of-type(5) > span::before, .charsheet .fillLeft > input[type=hidden][value="8"] ~ label:nth-of-type(4) > span::before, .charsheet .fillLeft > input[type=hidden][value="8"] ~ label:nth-of-type(3) > span::before, .charsheet .fillLeft > input[type=hidden][value="8"] ~ label:nth-of-type(2) > span::before, .charsheet .fillLeft > input[type=hidden][value="8"] ~ label:nth-of-type(1) > span::before, .charsheet .fillLeft > input[type=hidden][value="7"] ~ label:nth-of-type(8) > span::before, .charsheet .fillLeft > input[type=hidden][value="7"] ~ label:nth-of-type(7) > span::before, .charsheet .fillLeft > input[type=hidden][value="7"] ~ label:nth-of-type(6) > span::before, .charsheet .fillLeft > input[type=hidden][value="7"] ~ label:nth-of-type(5) > span::before, .charsheet .fillLeft > input[type=hidden][value="7"] ~ label:nth-of-type(4) > span::before, .charsheet .fillLeft > input[type=hidden][value="7"] ~ label:nth-of-type(3) > span::before, .charsheet .fillLeft > input[type=hidden][value="7"] ~ label:nth-of-type(2) > span::before, .charsheet .fillLeft > input[type=hidden][value="7"] ~ label:nth-of-type(1) > span::before, .charsheet .fillLeft > input[type=hidden][value="6"] ~ label:nth-of-type(7) > span::before, .charsheet .fillLeft > input[type=hidden][value="6"] ~ label:nth-of-type(6) > span::before, .charsheet .fillLeft > input[type=hidden][value="6"] ~ label:nth-of-type(5) > span::before, .charsheet .fillLeft > input[type=hidden][value="6"] ~ label:nth-of-type(4) > span::before, .charsheet .fillLeft > input[type=hidden][value="6"] ~ label:nth-of-type(3) > span::before, .charsheet .fillLeft > input[type=hidden][value="6"] ~ label:nth-of-type(2) > span::before, .charsheet .fillLeft > input[type=hidden][value="6"] ~ label:nth-of-type(1) > span::before, .charsheet .fillLeft > input[type=hidden][value="5"] ~ label:nth-of-type(6) > span::before, .charsheet .fillLeft > input[type=hidden][value="5"] ~ label:nth-of-type(5) > span::before, .charsheet .fillLeft > input[type=hidden][value="5"] ~ label:nth-of-type(4) > span::before, .charsheet .fillLeft > input[type=hidden][value="5"] ~ label:nth-of-type(3) > span::before, .charsheet .fillLeft > input[type=hidden][value="5"] ~ label:nth-of-type(2) > span::before, .charsheet .fillLeft > input[type=hidden][value="5"] ~ label:nth-of-type(1) > span::before, .charsheet .fillLeft > input[type=hidden][value="4"] ~ label:nth-of-type(5) > span::before, .charsheet .fillLeft > input[type=hidden][value="4"] ~ label:nth-of-type(4) > span::before, .charsheet .fillLeft > input[type=hidden][value="4"] ~ label:nth-of-type(3) > span::before, .charsheet .fillLeft > input[type=hidden][value="4"] ~ label:nth-of-type(2) > span::before, .charsheet .fillLeft > input[type=hidden][value="4"] ~ label:nth-of-type(1) > span::before, .charsheet .fillLeft > input[type=hidden][value="3"] ~ label:nth-of-type(4) > span::before, .charsheet .fillLeft > input[type=hidden][value="3"] ~ label:nth-of-type(3) > span::before, .charsheet .fillLeft > input[type=hidden][value="3"] ~ label:nth-of-type(2) > span::before, .charsheet .fillLeft > input[type=hidden][value="3"] ~ label:nth-of-type(1) > span::before, .charsheet .fillLeft > input[type=hidden][value="2"] ~ label:nth-of-type(3) > span::before, .charsheet .fillLeft > input[type=hidden][value="2"] ~ label:nth-of-type(2) > span::before, .charsheet .fillLeft > input[type=hidden][value="2"] ~ label:nth-of-type(1) > span::before, .charsheet .fillLeft > input[type=hidden][value="1"] ~ label:nth-of-type(2) > span::before, .charsheet .fillLeft > input[type=hidden][value="1"] ~ label:nth-of-type(1) > span::before, .charsheet .fillLeft > input[type=hidden][value="0"] ~ label:nth-of-type(1) > span::before { + content: "X"; + font-family: "Patrick Hand"; + color: black; + font-weight: bold; +} + +.charsheet .fillLeft { + background: none; + margin-bottom: 0; + width: 100%; + justify-content: space-around; +} +.charsheet .fillLeft:not(.showFirst) > label:first-of-type > input[type=radio] ~ span::before { + content: "X"; + padding-left: 0; + background: red; + color: white; + opacity: 0; + font-family: "Arial"; +} +.charsheet .fillLeft:not(.showFirst):hover > label:first-of-type > input[type=radio] ~ span::before { + opacity: 1; +} +.charsheet .fillLeft > label { + padding: 0; + margin: 0; + display: flex; + align-items: center; + justify-content: center; +} +.charsheet .fillLeft > label > input[type=radio] { + position: absolute; + width: 15px; + height: 15px; + opacity: 0; + cursor: default; +} +.charsheet .fillLeft > label > input[type=radio] ~ span { + width: 100%; +} +.charsheet .fillLeft > label > input[type=radio] ~ span::before { + background: none; + display: flex; + content: ""; + cursor: pointer; + width: 13px; + height: 13px; + border: 1px solid; + border-radius: 10px; + font-size: 15px; + line-height: 11px; + justify-content: center; + font-weight: bold; +} + +.charsheet label.profile { + border-bottom: dotted black 1px; + height: 22px; +} +.charsheet label.profile > select { + width: calc(80% - 10px); + margin-left: 10px; + font-family: "Patrick Hand"; + border: none; + background: none; +} + +.charsheet .blessedArcana > label { + border-bottom: dotted black 1px; + height: 22px; + width: calc(100% - 10px); + align-content: space-between; + display: inline-flex; +} +.charsheet .blessedArcana > label > select { + width: calc(70% - 10px); + margin-left: 10px; + font-family: "Patrick Hand"; + border: none; + background: none; +} +.charsheet .blessedArcana > label > select:nth-of-type(2) > option { + background: #ccc; +} + +.charsheet div#swordbar { + display: flex; + width: 100px; + height: 415px; + flex-direction: column; + padding: 10px 41px; + padding-top: 105px; + border-right: dotted 1px #395b63; + background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/lames-cardinal-v2/assets/epee.png"); + background-size: 100px 395px; + background-repeat: no-repeat; + flex-basis: content; +} +.charsheet div#swordbar label.healthboxwrapper { + display: flex; + flex-direction: row; + vertical-align: middle; +} +.charsheet div#swordbar label.healthboxwrapper > span { + color: #395b63; + margin-left: 5px; +} + +.charsheet .carac { + flex-direction: column; +} +.charsheet .carac > h4 { + width: 100%; + text-align: center; +} +.charsheet .carac > h4 input[type=number] { + height: 26px; + width: 26px; + border-radius: 14px; + text-align: right; + background: none; +} +.charsheet .carac > .carac_used { + align-content: space-around; + flex-wrap: wrap; + width: calc(100% - 65px); + padding: 10px calc(50% - 60px); +} +.charsheet .carac > .carac_used > label { + display: flex; + padding: 2px; + justify-content: baseline; + width: 20px; +} +.charsheet .carac > .carac_used > label > input[type=checkbox] { + opacity: 0; +} +.charsheet .carac > .carac_used > label > input[type=checkbox] + span::before { + width: 12px; + height: 12px; + border-radius: 12px; + border-style: solid; + border-width: 1px; + display: inline-flex; + content: " "; + margin-left: -12px; + cursor: pointer; +} +.charsheet .carac > .carac_used > label > input[type=checkbox]:checked + span::before { + content: "X"; + font: "Shadows Into Light"; + font-weight: bold; + font-size: 12px; +} +.charsheet .carac > .carac_used.blue > .fillLeft > label > input[type=radio] + span::before { + border-color: #395b63; +} +.charsheet .carac > .carac_used.red > .fillLeft > label > input[type=radio] + span::before { + border-color: #672418; +} +.charsheet .carac > .carac_used > input.displayTickbox[type=hidden][value="0"] ~ .fillLeft > label > input[type=radio][value="1"] + span::before { + display: none; +} +.charsheet .carac > .carac_used > input.displayTickbox[type=hidden][value="0"] ~ .fillLeft > label > input[type=radio][value="2"] + span::before { + display: none; +} +.charsheet .carac > .carac_used > input.displayTickbox[type=hidden][value="0"] ~ .fillLeft > label > input[type=radio][value="3"] + span::before { + display: none; +} +.charsheet .carac > .carac_used > input.displayTickbox[type=hidden][value="0"] ~ .fillLeft > label > input[type=radio][value="4"] + span::before { + display: none; +} +.charsheet .carac > .carac_used > input.displayTickbox[type=hidden][value="1"] ~ .fillLeft > label > input[type=radio][value="2"] + span::before { + display: none; +} +.charsheet .carac > .carac_used > input.displayTickbox[type=hidden][value="1"] ~ .fillLeft > label > input[type=radio][value="3"] + span::before { + display: none; +} +.charsheet .carac > .carac_used > input.displayTickbox[type=hidden][value="1"] ~ .fillLeft > label > input[type=radio][value="4"] + span::before { + display: none; +} +.charsheet .carac > .carac_used > input.displayTickbox[type=hidden][value="2"] ~ .fillLeft > label > input[type=radio][value="3"] + span::before { + display: none; +} +.charsheet .carac > .carac_used > input.displayTickbox[type=hidden][value="2"] ~ .fillLeft > label > input[type=radio][value="4"] + span::before { + display: none; +} +.charsheet .carac > .carac_used > input.displayTickbox[type=hidden][value="3"] ~ .fillLeft > label > input[type=radio][value="4"] + span::before { + display: none; +} + +.charsheet label.skill { + padding-right: 0; + display: flex; + margin: 2px 5px; +} +.charsheet label.skill > input { + border-bottom: 1px dotted black; + background: none; + border-left: 0; + border-right: 0; + border-top: 0; + border-radius: 0; +} +.charsheet label.skill > input[type=number] { + width: 35px; + text-align: center; +} +.charsheet label.skill > input[type=number]:not(:first-of-type) { + border-left: solid grey 1px; + border-right: solid grey 1px; + border-radius: 5px; + margin-left: 5px; +} +.charsheet label.skill > span, .charsheet label.skill > input[type=text] { + display: flex; + width: calc(100% - 90px); +} +.charsheet label.headerskill { + border-bottom: 1px dotted black; + justify-content: space-between; +} +.charsheet label.headerskill > input[type=number] { + border-bottom: none; + margin-left: -5px; +} + +.charsheet section#page-personnage { + flex-direction: row; + flex-wrap: wrap; + align-content: flex-start; +} +.charsheet section#page-personnage > #name { + width: 50%; + height: 30px; +} +.charsheet section#page-personnage > #arcanes { + padding-top: 12px; + width: 100%; + align-content: space-between; +} +.charsheet section#page-personnage > #looking { + padding-top: 8px; + width: 100%; + align-content: space-between; + flex-direction: row; +} +.charsheet section#page-personnage > #looking > .col2 { + flex-wrap: wrap; + width: 50%; +} +.charsheet section#page-personnage > #looking textarea, .charsheet section#page-personnage > #looking h3 { + width: 100%; +} +.charsheet section#page-personnage > #looking textarea { + line-height: 24px; + padding-block: 0; + padding-left: 5px; + padding-right: 5px; + background: repeating-linear-gradient(to bottom, transparent 0 22px, lightgray 22px 23px, transparent 23px 24px) 50% 0/calc(100% - 48px) 100% no-repeat; + font-family: "Shadows Into Light"; + font-style: italic; + font-size: 16px; +} + +.charsheet section#page-competences > div#caracs { + display: flex; + flex-direction: row; +} +.charsheet section#page-competences > div#caracs > div.skillblock { + display: flex; + width: 25%; + flex-direction: column; +} +.charsheet section#page-competences > div#caracs > div.skillblock > .carac > .icon { + width: 50px; + height: 50px; + display: block; + background-size: contain; + background-position: center; + background-repeat: no-repeat; + margin-left: calc(50% - 40px); +} +.charsheet section#page-competences > div#caracs > div.skillblock#griffe > .carac > .icon { + background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/lames-cardinal-v2/assets/griffe.png"); +} +.charsheet section#page-competences > div#caracs > div.skillblock#souffle > .carac > .icon { + background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/lames-cardinal-v2/assets/souffle.png"); +} +.charsheet section#page-competences > div#caracs > div.skillblock#sang > .carac > .icon { + background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/lames-cardinal-v2/assets/sang.png"); +} +.charsheet section#page-competences > div#caracs > div.skillblock#ecaille > .carac > .icon { + background-image: url("https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/lames-cardinal-v2/assets/ecaille.png"); +} +.charsheet section#page-competences > div#freeskills { + margin-top: 15px; + display: flex; + flex-direction: row; + width: 100%; +} +.charsheet section#page-competences > div#freeskills > #occultisme > input[type=text] { + background: none; + border: none; + border-bottom: dotted black 1px; + border-radius: 0; + width: 100%; +} + +.charsheet section#page-escrime { + margin-top: 15px; + flex-direction: row; + min-width: 660px; +} +.charsheet section#page-escrime > .col-2 > h4 { + width: 100%; +} +.charsheet section#page-escrime > .col-2 > h4:not(:first-of-type) { + margin-top: 25px; +} +.charsheet section#page-escrime > .col-2 > input[type=text] { + display: flex; + width: 100%; + background: none; + border: none; + border-bottom: 1px dotted grey; +} +.charsheet section#page-escrime > .col-2 > .repcontainer { + width: 100%; + flex-direction: column; +} +.charsheet section#page-escrime > .col-2 > .repcontainer > .repitem { + width: 100%; + display: flex; + flex-wrap: wrap; + flex-direction: row; +} +.charsheet section#page-escrime > .col-2 > .repcontainer > .repitem > label { + width: 15px; + height: 20px; +} +.charsheet section#page-escrime > .col-2 > .repcontainer > .repitem > input[type=text] { + width: calc(100% - 26px); + height: 20px; + background: none; + border: none; + border-bottom: 1px dotted gray; +} +.charsheet section#page-escrime > .col-2 > .repcontainer > .repitem > textarea { + width: 100%; + height: 72px; + line-height: 24px; + padding-block: 0; + padding-left: 5px; + padding-right: 5px; + background: repeating-linear-gradient(to bottom, transparent 0 22px, lightgray 22px 23px, transparent 23px 24px) 50% 0/calc(100% - 48px) 100% no-repeat; + font-family: "Shadows Into Light"; + font-style: italic; + font-size: 14px; + border: none; + display: none; +} +.charsheet section#page-escrime > .col-2 > .repcontainer > .repitem > input[type=hidden][value="1"] ~ textarea { + display: flex; +} + +.charsheet section#page-ressources { + flex-direction: row; + flex-wrap: wrap; + align-content: space-between; + min-width: 660px; +} +.charsheet section#page-ressources > .col-2 > h4 { + width: 100%; + display: flex; +} +.charsheet section#page-ressources > .col-2 > h4:not(:first-of-type) { + margin-top: 25px; +} +.charsheet section#page-ressources > .col-2 > h4 > span { + font-size: 0.9em; + font-style: italic; + color: black; + float: right; + margin-left: calc(100% - 100px); +} +.charsheet section#page-ressources > .col-2 > .fillLeft { + width: 100%; +} +.charsheet section#page-ressources #inventory textarea { + line-height: 20px; + padding-block: 0; + padding-left: 5px; + padding-right: 5px; + background: repeating-linear-gradient(to bottom, transparent 0 16px, lightgray 16px 17px, transparent 17px 20px) 50% 0/calc(100% - 40px) 100% no-repeat; + width: calc(100% - 20px); + min-height: 440px; + font-family: "Shadows Into Light"; +} +.charsheet section#page-ressources #contacts > .repcontainer { + width: 100%; + flex-direction: column; +} +.charsheet section#page-ressources #contacts > .repcontainer > .repitem { + width: 100%; + display: flex; + flex-wrap: wrap; + flex-direction: row; +} +.charsheet section#page-ressources #contacts > .repcontainer > .repitem > label { + width: 15px; + height: 20px; +} +.charsheet section#page-ressources #contacts > .repcontainer > .repitem > input[type=text] { + width: calc(100% - 26px - 40px); + height: 20px; + background: none; + border: none; + border-bottom: 1px dotted gray; +} +.charsheet section#page-ressources #contacts > .repcontainer > .repitem > input[type=number] { + width: 38px; + height: 20px; + background: none; + border: none; + border-bottom: 1px dotted gray; +} +.charsheet section#page-ressources #contacts > .repcontainer > .repitem > textarea { + width: 100%; + height: 72px; + line-height: 24px; + padding-block: 0; + padding-left: 5px; + padding-right: 5px; + background: repeating-linear-gradient(to bottom, transparent 0 22px, lightgray 22px 23px, transparent 23px 24px) 50% 0/calc(100% - 48px) 100% no-repeat; + font-family: "Shadows Into Light"; + font-style: italic; + font-size: 14px; + border: none; + display: none; +} +.charsheet section#page-ressources #contacts > .repcontainer > .repitem > input[type=hidden][value="1"] ~ textarea { + display: flex; +} + +/*# sourceMappingURL=lames_cardinal.css.map */ diff --git a/Lames du Cardinal v2/lames_cardinal.html b/Lames du Cardinal v2/lames_cardinal.html new file mode 100644 index 000000000000..d1f735488f0f --- /dev/null +++ b/Lames du Cardinal v2/lames_cardinal.html @@ -0,0 +1,721 @@ + + +
+ +
+
+ + + + + + + + +
+
+
+ +
+
+ + +
+
+ + +
+
+
+ + + +
+
+ + + +
+
+
+
+

Description

+ +
+
+

Habillement

+ +
+
+
+
+
+
+
+

Puissance + +

+
+
+ +
+ + + + + + +
+
+
+ + + + + + +
+
+
+

Vivacité + +

+
+
+ +
+ + + + + + +
+
+
+ + + + + + +
+
+
+

Galanterie + +

+
+
+ +
+ + + + + + +
+
+
+ + + + + + +
+
+
+

Finesse + +

+
+
+ +
+ + + + + + +
+
+
+ + + + + + +
+
+
+
+ +
+
+ + +
+
+
+
+
+

Armes

+ +

Feintes

+
+ + + + +
+
+
+

École

+ +

Bottes

+
+ + + + +
+
+
+
+
+

Ressources

+
+ + + + + + + + + + +
+

Possessions

+ +
+
+

Contacts

+
+ + + + + + + + + + +
+

RelationsNiveau

+
+ + + + + +
+
+
+
+
+ \ No newline at end of file diff --git a/Lames du Cardinal v2/package-lock.json b/Lames du Cardinal v2/package-lock.json new file mode 100644 index 000000000000..26cf48fe3d8b --- /dev/null +++ b/Lames du Cardinal v2/package-lock.json @@ -0,0 +1,2406 @@ +{ + "name": "Lames du Cardinal (v2)", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "Lames du Cardinal (v2)", + "dependencies": { + "npm-run-all": "^4.1.5", + "pug": "^3.0.2", + "pug-cli": "^1.0.0-alpha6", + "sass": "^1.75.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel-types": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.15.tgz", + "integrity": "sha512-JUgfZHUOMbtjopxiOQaaF+Uovk5wpDqpXR+XLWiOivCWSy1FccO30lvNNpCt8geFwq8VmGT2y9OMkOpA0g5O5g==" + }, + "node_modules/@types/babylon": { + "version": "6.16.9", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.9.tgz", + "integrity": "sha512-sEKyxMVEowhcr8WLfN0jJYe4gS4Z9KC2DGz0vqfC7+MXFbmvOF7jSjALC77thvAO2TLgFUPa9vDeOak+AcUrZA==", + "dependencies": { + "@types/babel-types": "*" + } + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha512-uWttZCk96+7itPxK8xCzY86PnxKTMrReKDqrHzv42VQY0K30PUO8WY13WMOuI+cOdX4EIdzdvQ8k6jkuGRFMYw==", + "dependencies": { + "acorn": "^4.0.4" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==", + "dependencies": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/assert-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", + "dependencies": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "node_modules/babel-types/node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dependencies": { + "@babel/types": "^7.9.6" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "bin": { + "babylon": "bin/babylon.js" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha512-Baz3aNe2gd2LP2qk5U+sDk/m4oSuwSDcBfayTCTBoWpfIGO5XFxPmjILQII4NGiZjD6DoDI6kf7gKaxkf7s3VQ==", + "dependencies": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "dependencies": { + "is-regex": "^1.0.3" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha512-GIOYRizG+TGoc7Wgc1LiOTLare95R3mzKgoln+Q/lE4ceiYH19gUpl0l0Ffq4lJDEf3FxujMe6IBfOCs7pfqNA==", + "dependencies": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "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==", + "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/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "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==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.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==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "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==" + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "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==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==" + }, + "node_modules/immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==" + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "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==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "node_modules/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "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==", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "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==", + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "engines": { + "node": ">=4" + } + }, + "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==" + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/pug": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", + "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", + "dependencies": { + "pug-code-gen": "^3.0.2", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.1", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.1", + "pug-strip-comments": "^2.0.0" + } + }, + "node_modules/pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dependencies": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "node_modules/pug-cli": { + "version": "1.0.0-alpha6", + "resolved": "https://registry.npmjs.org/pug-cli/-/pug-cli-1.0.0-alpha6.tgz", + "integrity": "sha512-ogaf7h4cT174NFSHNqAMdrZpGFCZSvsht41IYZZgP7ERZ1OxSc5fmPpojo1w9UntVreeChQP3BJ5r+Fey0a9zg==", + "dependencies": { + "chalk": "^1.0.0", + "commander": "^2.8.1", + "mkdirp": "^0.5.1", + "pug": "^2.0.0-alpha7" + }, + "bin": { + "pug": "index.js" + } + }, + "node_modules/pug-cli/node_modules/acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/pug-cli/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pug-cli/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pug-cli/node_modules/constantinople": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", + "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", + "dependencies": { + "@types/babel-types": "^7.0.0", + "@types/babylon": "^6.16.2", + "babel-types": "^6.26.0", + "babylon": "^6.18.0" + } + }, + "node_modules/pug-cli/node_modules/is-expression": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", + "integrity": "sha512-vyMeQMq+AiH5uUnoBfMTwf18tO3bM6k1QXBE9D6ueAAquEfCZe3AJPtud9g6qS0+4X8xA7ndpZiDyeb2l2qOBw==", + "dependencies": { + "acorn": "~4.0.2", + "object-assign": "^4.0.1" + } + }, + "node_modules/pug-cli/node_modules/pug": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz", + "integrity": "sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==", + "dependencies": { + "pug-code-gen": "^2.0.2", + "pug-filters": "^3.1.1", + "pug-lexer": "^4.1.0", + "pug-linker": "^3.0.6", + "pug-load": "^2.0.12", + "pug-parser": "^5.0.1", + "pug-runtime": "^2.0.5", + "pug-strip-comments": "^1.0.4" + } + }, + "node_modules/pug-cli/node_modules/pug-attrs": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz", + "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==", + "dependencies": { + "constantinople": "^3.0.1", + "js-stringify": "^1.0.1", + "pug-runtime": "^2.0.5" + } + }, + "node_modules/pug-cli/node_modules/pug-code-gen": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.3.tgz", + "integrity": "sha512-r9sezXdDuZJfW9J91TN/2LFbiqDhmltTFmGpHTsGdrNGp3p4SxAjjXEfnuK2e4ywYsRIVP0NeLbSAMHUcaX1EA==", + "dependencies": { + "constantinople": "^3.1.2", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.1", + "pug-attrs": "^2.0.4", + "pug-error": "^1.3.3", + "pug-runtime": "^2.0.5", + "void-elements": "^2.0.1", + "with": "^5.0.0" + } + }, + "node_modules/pug-cli/node_modules/pug-error": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz", + "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==" + }, + "node_modules/pug-cli/node_modules/pug-filters": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz", + "integrity": "sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==", + "dependencies": { + "clean-css": "^4.1.11", + "constantinople": "^3.0.1", + "jstransformer": "1.0.0", + "pug-error": "^1.3.3", + "pug-walk": "^1.1.8", + "resolve": "^1.1.6", + "uglify-js": "^2.6.1" + } + }, + "node_modules/pug-cli/node_modules/pug-lexer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz", + "integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==", + "dependencies": { + "character-parser": "^2.1.1", + "is-expression": "^3.0.0", + "pug-error": "^1.3.3" + } + }, + "node_modules/pug-cli/node_modules/pug-linker": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz", + "integrity": "sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==", + "dependencies": { + "pug-error": "^1.3.3", + "pug-walk": "^1.1.8" + } + }, + "node_modules/pug-cli/node_modules/pug-load": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz", + "integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==", + "dependencies": { + "object-assign": "^4.1.0", + "pug-walk": "^1.1.8" + } + }, + "node_modules/pug-cli/node_modules/pug-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz", + "integrity": "sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==", + "dependencies": { + "pug-error": "^1.3.3", + "token-stream": "0.0.1" + } + }, + "node_modules/pug-cli/node_modules/pug-runtime": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz", + "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw==" + }, + "node_modules/pug-cli/node_modules/pug-strip-comments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz", + "integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==", + "dependencies": { + "pug-error": "^1.3.3" + } + }, + "node_modules/pug-cli/node_modules/pug-walk": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-1.1.8.tgz", + "integrity": "sha512-GMu3M5nUL3fju4/egXwZO0XLi6fW/K3T3VTgFQ14GxNi8btlxgT5qZL//JwZFm/2Fa64J/PNS8AZeys3wiMkVA==" + }, + "node_modules/pug-cli/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/pug-cli/node_modules/token-stream": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz", + "integrity": "sha512-nfjOAu/zAWmX9tgwi5NRp7O7zTDUD1miHiB40klUnAh9qnL1iXdgzcz/i5dMaL5jahcBAaSfmNOBBJBLJW8TEg==" + }, + "node_modules/pug-cli/node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pug-cli/node_modules/with": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz", + "integrity": "sha512-uAnSsFGfSpF6DNhBXStvlZILfHJfJu4eUkfbRGk94kGO1Ta7bg6FwfvoOhhyHAJuFbCw+0xk4uJ3u57jLvlCJg==", + "dependencies": { + "acorn": "^3.1.0", + "acorn-globals": "^3.0.0" + } + }, + "node_modules/pug-cli/node_modules/with/node_modules/acorn": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "integrity": "sha512-OLUyIIZ7mF5oaAUT1w0TFqQS81q3saT46x8t7ukpPjMNk+nbs4ZHhs7ToV8EWnLYLepjETXd4XaCE4uxkMeqUw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/pug-code-gen": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", + "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "dependencies": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==" + }, + "node_modules/pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dependencies": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "node_modules/pug-lexer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", + "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dependencies": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dependencies": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "node_modules/pug-runtime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", + "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==" + }, + "node_modules/pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dependencies": { + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==" + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha512-yqINtL/G7vs2v+dFIZmFUDbnVyFUJFKd6gK22Kgo6R4jfJGFtisKyncWDDULgjfqf4ASQuIQyjJ7XZ+3aWpsAg==", + "dependencies": { + "align-text": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sass": { + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.75.0.tgz", + "integrity": "sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==", + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.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==", + "bin": { + "semver": "bin/semver" + } + }, + "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==", + "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-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "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==" + }, + "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==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==" + }, + "node_modules/string.prototype.padend": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==" + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha512-qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==", + "dependencies": { + "source-map": "~0.5.1", + "yargs": "~3.10.0" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + }, + "optionalDependencies": { + "uglify-to-browserify": "~1.0.0" + } + }, + "node_modules/uglify-js/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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha512-vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==", + "optional": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha512-1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dependencies": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha512-xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha512-QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==", + "dependencies": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } +} diff --git a/Lames du Cardinal v2/package.json b/Lames du Cardinal v2/package.json new file mode 100644 index 000000000000..f9086aafafb8 --- /dev/null +++ b/Lames du Cardinal v2/package.json @@ -0,0 +1,16 @@ +{ + "name": "lames-du-cardinal-2ed", + "verson": "0.1.0", + "description": "Fiche pour la seconde édition du jeu les Lames du Cardinal.", + "scripts": { + "start": "npm-run-all --parallel compile:sass compile:pug", + "compile:sass": "sass ./src/lames_cardinal.sass ./lames_cardinal.css -w --no-charset --style=expanded", + "compile:pug": "pug ./src/lames_cardinal.pug -o ./ -w -d html -P" + }, + "dependencies": { + "npm-run-all": "^4.1.5", + "pug": "^3.0.2", + "pug-cli": "^1.0.0-alpha6", + "sass": "^1.75.0" + } +} diff --git a/Lames du Cardinal v2/preview.png b/Lames du Cardinal v2/preview.png new file mode 100644 index 000000000000..4e8584419662 Binary files /dev/null and b/Lames du Cardinal v2/preview.png differ diff --git a/Lames du Cardinal v2/sheet.json b/Lames du Cardinal v2/sheet.json new file mode 100644 index 000000000000..056b461199e3 --- /dev/null +++ b/Lames du Cardinal v2/sheet.json @@ -0,0 +1,9 @@ +{ + "html": "lames_cardinal.html", + "css": "lames_cardinal.css", + "authors": "Calmacil", + "roll20userid": "207964", + "legacy": false, + "preview": "preview.png", + "instructions": "French only\n\nFeuille de personnages pour [Les Lames du Cardinal](https://elder-craft.com/collections/les-lames-du-cardinal)\n\nCette fiche nécessite d'utiliser le système de cartes de Roll20 afin de jouer à la seconde version des Lames du Cardinal." +} diff --git a/Lames du Cardinal v2/src/abstracts/_layout.sass b/Lames du Cardinal v2/src/abstracts/_layout.sass new file mode 100644 index 000000000000..ab9d21981f70 --- /dev/null +++ b/Lames du Cardinal v2/src/abstracts/_layout.sass @@ -0,0 +1,64 @@ +.charsheet + main, + nav, + div + display: flex + font-size: 12px + padding: 3px + div.col + flex-direction: column + width: calc(100% - 6px) + div.col-2 + flex-direction: column + width: calc(50% - 6px) + + label + font-weight: normal + + main + margin-top: -20px + margin-left: -8px + width: 100% + min-width: 845px + min-height: 590px + flex-direction: row + flex-wrap: wrap + background-size: 850px 1180px + background-repeat: no-repeat + background-origin: border-box + + nav#menu + height: 50px + flex-grow: 0 + + #container + flex: 1 + width: 100% + + section.page + display: none + flex-flow: column + width: 100% + + div.repcontrol + display: flex + // justify-content: space-between + &> .btn + font-size: .85em + padding: 2px + + %showSection + display: flex + + $pages: 'personnage', 'competences', 'escrime', 'ressources' + @each $page in $pages + input[name=attr_page][value=#{$page}] ~ main section#page-#{$page} + @extend %showSection + input[name=attr_page] + &[value='personnage'] ~ main, + &[value='competences'] ~ main + background-image: url("#{$IMAGES_ROOT}dragonrouge.jpg") + + &[value='escrime'] ~ main, + &[value='ressources'] ~ main + background-image: url("#{$IMAGES_ROOT}dragonnoir.jpg") \ No newline at end of file diff --git a/Lames du Cardinal v2/src/abstracts/_mixins.sass b/Lames du Cardinal v2/src/abstracts/_mixins.sass new file mode 100644 index 000000000000..2e2b6d94a72d --- /dev/null +++ b/Lames du Cardinal v2/src/abstracts/_mixins.sass @@ -0,0 +1,45 @@ +@mixin checkable($size) + opacity: 0 + & + span + &::before + width: $size + height: $size + rotate: 45deg + border: solid black 1px + display: inline-flex + content: ' ' + margin-right: 5px + &::after + content: attr(title) + &:checked + &+span::before + background-color: gray + &+span::after + text-decoration: underline + text-decoration-color: #900 + +@mixin tickable($size) + opacity: 0 + & + span::before + width: $size + height: $size + border-radius: $size + border-style: solid + border-width: 1px + display: inline-flex + content: ' ' + margin-left: -$size + cursor: pointer + &:checked + &+span::before + content: 'X' + font: 'Shadows Into Light' + font-weight: bold + font-size: $size + +@mixin textareaLined($h1, $h2) + line-height: $h1 + padding-block: 0 + padding-left: 5px + padding-right: 5px + background: repeating-linear-gradient(to bottom, transparent 0 $h2, lightgray $h2 calc($h2 + 1px), transparent calc($h2 + 1px) $h1) 50% 0 / calc(100% - $h1 * 2 ) 100% no-repeat \ No newline at end of file diff --git a/Lames du Cardinal v2/src/abstracts/_typography.sass b/Lames du Cardinal v2/src/abstracts/_typography.sass new file mode 100644 index 000000000000..e7f430a574c2 --- /dev/null +++ b/Lames du Cardinal v2/src/abstracts/_typography.sass @@ -0,0 +1,24 @@ +.charsheet + h3, h4 + font-family: 'Arial' + font-variant-caps: small-caps + &.blue + color: $emblue + &.red + color: $emred + h3 + font-size: 1.3em + h4 + font-size: 1.2em + + + label > span + font-weight: bold + font-style: italic + font-size: .9em + + input + font-family: 'Shadows Into Light' + font-style: italic + font-size: 12pt + padding: 0 \ No newline at end of file diff --git a/Lames du Cardinal v2/src/abstracts/variables.sass b/Lames du Cardinal v2/src/abstracts/variables.sass new file mode 100644 index 000000000000..f60e68f48815 --- /dev/null +++ b/Lames du Cardinal v2/src/abstracts/variables.sass @@ -0,0 +1,5 @@ +$emgrey:#446469 +$emblue:#395b63 +$emred:#672418 + +$IMAGES_ROOT: 'https://raw.githubusercontent.com/Roll20/roll20-character-sheets/refs/heads/master/lames-cardinal-v2/assets/' \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/blessedarcana/blessedarcana.js b/Lames du Cardinal v2/src/components/blessedarcana/blessedarcana.js new file mode 100644 index 000000000000..2330aad0ff00 --- /dev/null +++ b/Lames du Cardinal v2/src/components/blessedarcana/blessedarcana.js @@ -0,0 +1,19 @@ + +/** + * Updates a cursed arcana according to a selected blessed arcana + * + * @param {string} attrName The r20 attribute name + */ +var setCursedArcana = attrName => { + getAttrs([attrName], v => { + let selected = parseInt(v[attrName]) + if (selected === false || selected === -1) { + selected = undefined + } + + let data = {} + data[`${attrName}_opp`] = (selected === undefined) ? -1 : (21 - selected); + + setAttrs(data) + }) +} \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/blessedarcana/blessedarcana.pug b/Lames du Cardinal v2/src/components/blessedarcana/blessedarcana.pug new file mode 100644 index 000000000000..69ce193c08a3 --- /dev/null +++ b/Lames du Cardinal v2/src/components/blessedarcana/blessedarcana.pug @@ -0,0 +1,35 @@ +mixin arcanaSelect(attrName, ro=false) + +select(attrName, null, ro) + option(value=-1) + option(value=0) 0 - L’Astrologue en prière + option(value=1) 1 - La Tisserande oubliée + option(value=2) 2 - Le Voleur sans mémoire + option(value=3) 3 - Le Jongleur indécis + option(value=4) 4 - La Danseuse à l’épée + option(value=5) 5 - La Sentinelle silencieuse + option(value=6) 6 - L’Enlumineur aveugle + option(value=7) 7 - Le Maître d’armes aux flambeaux + option(value=8) 8 - La Vestale de pierre + option(value=9) 9 - Le Pèlerin immobile + option(value=10) 10 - L’Hérésiarque couronné + option(value=11) 11 - Le Gentilhomme au corbeau + option(value=12) 12 - L’Architecte des mondes + option(value=13) 13 - La Courtisane amoureuse + option(value=14) 14 - L’Assassin sans visage + option(value=15) 15 - L’Horloger des chimères + option(value=16) 16 - La Gardienne derrière le miroir + option(value=17) 17 - La Magicienne sous le voile + option(value=18) 18 - La Demoiselle en la tour + option(value=19) 19 - L’Alchimiste des ombres + option(value=20) 20 - Le Guerrier immortel + option(value=21) 21 - Le Chevalier au dragon + +mixin blessedArcana(attrName) + .blessedArcana.col-2 + label + span Arcane béni + +arcanaSelect(attrName) + label + span Arcane opposé + +arcanaSelect(`${attrName}_opp`, true) + +textLabelled(`${attrName}_stigmata`, 'Marque') \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/blessedarcana/blessedarcana.sass b/Lames du Cardinal v2/src/components/blessedarcana/blessedarcana.sass new file mode 100644 index 000000000000..2397a33077ae --- /dev/null +++ b/Lames du Cardinal v2/src/components/blessedarcana/blessedarcana.sass @@ -0,0 +1,14 @@ +.charsheet .blessedArcana > label + border-bottom: dotted black 1px + height: 22px + width: calc(100% - 10px) + align-content: space-between + display: inline-flex + &> select + width: calc(70% - 10px) + margin-left: 10px + font-family: 'Patrick Hand' + border: none + background: none + &:nth-of-type(2) > option + background: #ccc \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/carac/carac.js b/Lames du Cardinal v2/src/components/carac/carac.js new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/Lames du Cardinal v2/src/components/carac/carac.pug b/Lames du Cardinal v2/src/components/carac/carac.pug new file mode 100644 index 000000000000..3fc292741950 --- /dev/null +++ b/Lames du Cardinal v2/src/components/carac/carac.pug @@ -0,0 +1,9 @@ + +mixin carac(attrName, label) + div.carac + h4(class!=attributes.class)!= label + +numberInput(attrName, 0) + div.icon + div(class!=`carac_used ${attributes.class}`) + +hiddenInput(attrName, 0).displayTickbox + +fillLeft(`${attrName}_used`, 'caracUsed', 4, 0) \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/carac/carac.sass b/Lames du Cardinal v2/src/components/carac/carac.sass new file mode 100644 index 000000000000..ec28022916ed --- /dev/null +++ b/Lames du Cardinal v2/src/components/carac/carac.sass @@ -0,0 +1,37 @@ +.charsheet .carac + flex-direction: column + + &> h4 + width: 100% + text-align: center + & input[type=number] + height: 26px + width: 26px + border-radius: 14px + text-align: right + background: none + &> .carac_used + align-content: space-around + flex-wrap: wrap + width: calc(100% - 65px) + + padding: 10px calc(50% - 60px) + &> label + display: flex + padding: 2px + // align-items: center + justify-content: baseline + width: 20px + + &> input[type=checkbox] + @include tickable(12px) + &.blue > .fillLeft > label > input[type=radio] + span::before + border-color: $emblue + &.red > .fillLeft > label > input[type=radio] + span::before + border-color: $emred + + &> input.displayTickbox[type=hidden] + @for $i from 1 through 4 + @for $j from $i through 4 + &[value='#{$i - 1}']~ .fillLeft > label > input[type=radio][value='#{$j}'] + span::before + display: none \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/components.pug b/Lames du Cardinal v2/src/components/components.pug new file mode 100644 index 000000000000..5a3e0ee3a33a --- /dev/null +++ b/Lames du Cardinal v2/src/components/components.pug @@ -0,0 +1,8 @@ +include ./widgets/widgets +include ./nstatebox/nstatebox +include ./fillleft/fillleft +include ./swordbar/swordbar +include ./blessedarcana/blessedarcana +include ./profile/profile +include ./carac/carac +include ./skill/skill \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/components.sass b/Lames du Cardinal v2/src/components/components.sass new file mode 100644 index 000000000000..67800af2932f --- /dev/null +++ b/Lames du Cardinal v2/src/components/components.sass @@ -0,0 +1,8 @@ +@import './widgets/widgets' +@import './nstatebox/nstatebox' +@import './fillleft/fillleft' +@import './profile/profile' +@import './blessedarcana/blessedarcana' +@import './swordbar/swordbar' +@import './carac/carac' +@import './skill/skill' \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/fillleft/fillleft.pug b/Lames du Cardinal v2/src/components/fillleft/fillleft.pug new file mode 100644 index 000000000000..8533dd9d4d25 --- /dev/null +++ b/Lames du Cardinal v2/src/components/fillleft/fillleft.pug @@ -0,0 +1,25 @@ +//- @pugdoc + name: rdLeft + description: an alternative to rdButton designed for the fillLeft component + arguments: + - {string} attrName - The r20 attribute name + - {integer} value - The value borne by the rdLeft +mixin rdLeft(attrName, value) + label(class!=attributes.class) + input(name=`attr_${attrName}`, type='radio', value=value) + span + +//- @pugdoc + name: fillLeft + description: a collection of thickboxes which of each box left to the selected one is ticked. This is + | roughly equivalent to a input type number, but with a sexier look & feel + arguments: + - {string} attrName - The r20 attribute name + - {string} wrapperClass - A specific wrapper class which comes alongside the default fillLeft + - {integer} number - the max value of the widget + - {integer} startInedx - the first value of the counter, defaults to 1 +mixin fillLeft(attrName, wrapperClass, number, startIndex=1) + .fillLeft(class!=wrapperClass) + +hiddenInput(attrName, 0) + - for (i = startIndex; i <= number; i++) + +rdLeft(attrName, i)(class!=attributes.class) \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/fillleft/fillleft.sass b/Lames du Cardinal v2/src/components/fillleft/fillleft.sass new file mode 100644 index 000000000000..9ad4b08b5a5b --- /dev/null +++ b/Lames du Cardinal v2/src/components/fillleft/fillleft.sass @@ -0,0 +1,57 @@ + +%ticked + content: 'X' + font-family: 'Patrick Hand' + color: black + font-weight: bold + +@for $i from 0 to 9 + @for $j from 0 through $i + $k: $j + 1 + .charsheet .fillLeft > input[type=hidden][value="#{$i}"] ~ label:nth-of-type(#{$k}) > span::before + @extend %ticked + +.charsheet .fillLeft + background: none + margin-bottom: 0 + width: 100% + justify-content: space-around + + &:not(.showFirst) + &> label:first-of-type > input[type=radio] ~ span::before + content: 'X' + padding-left: 0 + background: red + color: white + opacity: 0 + font-family: 'Arial' + &:hover > label:first-of-type > input[type=radio] ~ span::before + opacity: 1 + + &> label + padding: 0 + margin: 0 + display: flex + align-items: center + justify-content: center + &> input[type=radio] + position: absolute + width: 15px + height: 15px + opacity: 0 + cursor: default + &~ span + width: 100% + &::before + background: none + display: flex + content: '' + cursor: pointer + width: 13px + height: 13px + border: 1px solid + border-radius: 10px + font-size: 15px + line-height: 11px + justify-content: center + font-weight: bold \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/nstatebox/nstatebox.js b/Lames du Cardinal v2/src/components/nstatebox/nstatebox.js new file mode 100644 index 000000000000..50d519502c44 --- /dev/null +++ b/Lames du Cardinal v2/src/components/nstatebox/nstatebox.js @@ -0,0 +1,15 @@ + +/** + * This functon make cycle a n-state widget over its possible values + * + * @param {string} attrName The identifier of the attribute you want to cycle on + * @param {int} maxVal The max value the attribute could take + */ +var cycleBoxState = (attrName, maxVal) => { + getAttrs([attrName], v => { + const curValue = parseInt(v[attrName]) || 0; + let data = {} + data[attrName] = (curValue + 1) % maxVal + setAttrs(data) + }) +} \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/nstatebox/nstatebox.pug b/Lames du Cardinal v2/src/components/nstatebox/nstatebox.pug new file mode 100644 index 000000000000..1b26b743e379 --- /dev/null +++ b/Lames du Cardinal v2/src/components/nstatebox/nstatebox.pug @@ -0,0 +1,33 @@ +//- @pugdoc + name: nstateBox + description: the skeletton for setting a nState checkbox (not limited to 3-state). You may + | specify a class + arguments: + - {string} name - The r20 attribute name +mixin nstateBox(name) + div(class!=`nstate ${attributes.class}`) + +hiddenInput(name) + +actButton(`${name}_cycle`) + if block + block + +//- @pugdoc + name: nstateOption + description: option for the nstateBox widget. You may specify a class +mixin nstateOption(value) + span(class!=`nstateopt ${attributes.class}`)!= value + +//- @pugdoc + name: healthBox + description: This widget is used to store health issues + arguments: + - {string} name - The attribute name +mixin healthBox(name, letter=none) + label.healthboxwrapper + +nstateBox(name).healthbox + +nstateOption(' ').health_ok + +nstateOption('/').health_tenacity + +nstateOption('X').health_wound + +nstateOption('\\').health_longTenacity + if letter != none + span!= letter \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/nstatebox/nstatebox.sass b/Lames du Cardinal v2/src/components/nstatebox/nstatebox.sass new file mode 100644 index 000000000000..2bd3e46b42a0 --- /dev/null +++ b/Lames du Cardinal v2/src/components/nstatebox/nstatebox.sass @@ -0,0 +1,29 @@ +.charsheet + & .nstate + width: 15px + height: 15px + padding: 0 + border: 1px solid black + background: #eee + margin: 2px 0 + + &> .nstateopt + display: none + font-weight: bold + margin-left: -12px + text-align: center + + &.healthbox + border-radius: 10px + border: 2px solid $emblue + &> .nstate + width: 13px + height: 12px + border-radius: 10px + &> button[type="action"] + opacity: 0 + &> input[type=hidden] + &[value="1"] ~ span.nstateopt.health_tenacity, + &[value="2"] ~ span.nstateopt.health_longTenacity, + &[value="3"] ~ span.nstateopt.health_wound + display: flex diff --git a/Lames du Cardinal v2/src/components/profile/profile.pug b/Lames du Cardinal v2/src/components/profile/profile.pug new file mode 100644 index 000000000000..2004c710b919 --- /dev/null +++ b/Lames du Cardinal v2/src/components/profile/profile.pug @@ -0,0 +1,29 @@ +mixin profile(name) + label.profile + span Profil : + +select(name, 'Choisir un profil') + +optgroup('Roturiers') + option(value='artisan') Artisan + option(value='aventurier') Aventurier + option(value='commercant') Commerçant + option(value='saltimbanque') Saltimbanque + +optgroup('Lettrés') + option(value='artiste') Artiste + option(value='erudit') Érudit + option(value='medecin') Médecin + option(value='religieux') Religieux + option(value='savant') Savant + +optgroup('Combattants') + option(value='cavalier') Cavalier + option(value='finelame') Fine lame + option(value='forban') Forban + option(value='mousquetaire') Mousquetaire + option(value='officier') Officier + option(value='soldat') Soldat + +optgroup('courtisan') + option(value='conseiller') Conseiller + option(value='courtisan') Courtisan + option(value='diplomate') Diplomate + option(value='espion') Espion + option(value='libertin') Libertin + option(value='noble') Noble \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/profile/profile.sass b/Lames du Cardinal v2/src/components/profile/profile.sass new file mode 100644 index 000000000000..b8eab3556ccf --- /dev/null +++ b/Lames du Cardinal v2/src/components/profile/profile.sass @@ -0,0 +1,9 @@ +.charsheet label.profile + border-bottom: dotted black 1px + height: 22px + &> select + width: calc(80% - 10px) + margin-left: 10px + font-family: 'Patrick Hand' + border: none + background: none \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/skill/skill.js b/Lames du Cardinal v2/src/components/skill/skill.js new file mode 100644 index 000000000000..b55b74785cc6 --- /dev/null +++ b/Lames du Cardinal v2/src/components/skill/skill.js @@ -0,0 +1,14 @@ + +/** + * Updates the half value of a skill for display + * + * @param {string} attrName The r20 attribute name of the skill + */ +var updateHalfSkill = (attrName) => { + getAttrs([attrName], v => { + let skillVal = parseInt(v[attrName])||0 + let data = {} + data[`${attrName}_half`] = Math.floor(skillVal / 2) + setAttrs(data) + }) +} \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/skill/skill.pug b/Lames du Cardinal v2/src/components/skill/skill.pug new file mode 100644 index 000000000000..e5d9e80ca96f --- /dev/null +++ b/Lames du Cardinal v2/src/components/skill/skill.pug @@ -0,0 +1,26 @@ +//- @pugdoc + - name: skill + - description: A simple skill field with display label, value and half value + - arguments: + - {string} attrName - The r20 attribute name + - {string} label - The displayed label. If not specified, a text input +mixin skill(attrName, label='') + label.skill + if label == '' + +textInput(`${attrName}_name`, '') + else + span.skillLabel!= label + +numberInput(attrName, '') + +numberInput(`${attrName}_half`)(readonly) + +//- @pugdoc + - name: headerSkill + - description: A skill field with an emphasized label + - arguments + - {string} attrName - The r20 attribute name + - {string} label - The displayed label + - {integer} value - The default value +mixin headerSkill(attrName, label='', value=0) + label.skill.headerskill + h4(class!=attributes.class)!= label + +numberInput(attrName, value) \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/skill/skill.sass b/Lames du Cardinal v2/src/components/skill/skill.sass new file mode 100644 index 000000000000..a8d4ce49da63 --- /dev/null +++ b/Lames du Cardinal v2/src/components/skill/skill.sass @@ -0,0 +1,33 @@ +.charsheet + & label.skill + padding-right: 0 + display: flex + margin: 2px 5px + + &> input + border-bottom: 1px dotted black + background: none + border-left: 0 + border-right: 0 + border-top: 0 + border-radius: 0 + + &[type=number] + width: 35px + text-align: center + &:not(:first-of-type) + border-left: solid grey 1px + border-right: solid grey 1px + border-radius: 5px + margin-left: 5px + &> span, + &> input[type=text] + display: flex + width: calc(100% - 90px) + + & label.headerskill + border-bottom: 1px dotted black + justify-content: space-between + &> input[type=number] + border-bottom: none + margin-left: -5px \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/swordbar/swordbar.js b/Lames du Cardinal v2/src/components/swordbar/swordbar.js new file mode 100644 index 000000000000..34db91f22312 --- /dev/null +++ b/Lames du Cardinal v2/src/components/swordbar/swordbar.js @@ -0,0 +1,8 @@ + +/** + * Triggers the change of state of the health boxes + */ +on('clicked:health_1_cycle clicked:health_2_cycle clicked:health_3_cycle clicked:health_4_cycle clicked:health_5_cycle clicked:health_6_cycle clicked:health_7_cycle clicked:health_8_cycle', (ev) => { + let srcName = ev.htmlAttributes.name.replace('act_', '').replace('_cycle', '') + cycleBoxState(srcName, 4); +}) \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/swordbar/swordbar.pug b/Lames du Cardinal v2/src/components/swordbar/swordbar.pug new file mode 100644 index 000000000000..649225aaa058 --- /dev/null +++ b/Lames du Cardinal v2/src/components/swordbar/swordbar.pug @@ -0,0 +1,10 @@ +mixin swordbar() + div#swordbar + +healthBox('health_1', 'V') + +healthBox('health_2') + +healthBox('health_3') + +healthBox('health_4') + +healthBox('health_5') + +healthBox('health_6') + +healthBox('health_7') + +healthBox('health_8', 'T') \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/swordbar/swordbar.sass b/Lames du Cardinal v2/src/components/swordbar/swordbar.sass new file mode 100644 index 000000000000..0aeaffdb7d25 --- /dev/null +++ b/Lames du Cardinal v2/src/components/swordbar/swordbar.sass @@ -0,0 +1,23 @@ +.charsheet + div#swordbar + display: flex + width: 100px + height: 415px + flex-direction: column + padding: 10px 41px + padding-top: 105px + border-right: dotted 1px $emblue + + background-image: url("#{$IMAGES_ROOT}epee.png") + background-size: 100px 395px + background-repeat: no-repeat + + flex-basis: content + + & label.healthboxwrapper + display: flex + flex-direction: row + vertical-align: middle + &> span + color: $emblue + margin-left: 5px \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/widgets/widgets.pug b/Lames du Cardinal v2/src/components/widgets/widgets.pug new file mode 100644 index 000000000000..0f1fdbea57d6 --- /dev/null +++ b/Lames du Cardinal v2/src/components/widgets/widgets.pug @@ -0,0 +1,126 @@ +//- @pugdoc + name: textInput + description: A text input widget + arguments: + - {string} name - The attribute name. Do not prefix with 'attr_' + - {string} value - The default value the input is filled with +mixin textInput(name, value='') + input(class!=attributes.class name=`attr_${name}` placeholder!=attributes.placeholder type='text' value=value) + +//- @pugdoc + name: textLabelled + description: A text input widget preceeded with a label + arguments: + - {string} name - The attribute name. Do not prefix with 'attr_' + - {string} label - The displayed label + - {string} id - The `id` input attribute (and the `for` label attribute) + - {string} value - The default value +mixin textLabelled(name, label, id, value='') + label(for=id)&attributes(attributes).textLabelled + span!= label + +textInput(name, value)(id=id) + +//- @pugdoc + name: numberInput + description: A number input widget + arguments: + - {string} name - The attribute name. Do not prefix with 'attr_' + - {string} value - The default value the input is filled with +mixin numberInput(name, value='') + input(class!=attributes.class name=`attr_${name}` readonly!=attributes.readonly placeholder!=attributes.placeholder type='number' value=value) + +//- @pugdoc + name: numberLabeled + description: a number widget preceeded with a label + arguments: + - {string} name - The attribute name. Do not prefix with 'attr_' + - {string} label - The displayed label + - {string} id - The `id` inpu attribute (and the `for` label attribute) + - {string} value - The default value +mixin numberLabelled(name, label, id, value='') + label(for=id)&attributes(attributes) + span!= label + +numberInput(name, value)(id=id) + +//- @pugdoc + name: textareaInput + description: A textarea widget + arguments: + - {string} name - The attribute name. Do not prefix with 'attr_' + - {string} value - The default value the input is filled with +mixin textareaInput(name, value='') + textarea(class!=attributes.class name=`attr_${name}` placeholder!=attributes.placeholder)= value + +//- @pugdoc + name: hiddenInput + description: A hidden text input widget + arguments: + - {string} name - The attribute name. Do not prefix with 'attr_' + - {string} value - The default value the input is filled with +mixin hiddenInput(name, value='') + input(class!=attributes.class name=`attr_${name}` type='hidden' value=value) + +//- @pugdoc + name: rollButton + description: A roll button, used to execute dice rolls + arguments: + - {string} name - The button name. Do not prefix with 'roll_' + - {string} value - The dice roll value in roll20 standard format +mixin rollButton(name, value='') + button(class!=`roll ${attributes.class}` name=`roll_${name}` type='roll' value!=value) + +//- @pugdoc + name: rollButton + description: An action button, used to execute dice rolls with complex logic + arguments: + - {string} name - The button name. Do not prefix with 'act_' + - {string} value - The dice roll value in roll20 standard format +mixin actButton(name, value='') + button(class!=attributes.class name=`act_${name}` type='action' value!=value) + +//- @pugdoc + name: cbButton + description: A checkbox widget + arguments: + - {string} name - The widget name. Do not prefix with 'attr_' + - {string} label - The widget label, displayed right after the button + - {string} value - The attribute value when the cb is checked +mixin cbButton(name, label, value='') + label + input(name=`attr_${name}` value=value type='checkbox') + span(title=label) + +//- @pugdoc + name: rdButton + description: A radio widget + arguments: + - {string} name - The widget name. Do not prefix with 'attr_' + - {string} label - The widget label, displayed right after the button + - {string} value - The attribute value when the rd is checked +mixin rdButton(name, label, value='') + label + input(name=`attr_${name}`, value=value, type='radio') + span(title=label) + +//- @pugdoc + name: select + description: a simple dropdown list + arguments: + - {string} name - The widget name. Do not prefix with 'attr_' + - {string} defaultOption - The default option label. If present, the associated value is an empty string. +mixin select(name, defaultOption=null, ro=false) + select(name=`attr_${name}` readonly!=ro) + if defaultOption + option(value='', selected)!= defaultOption + if block + block + +mixin optgroup(label='') + option(class='optgroup' disabled)!= `  ${label}` + +//- Specific mixins +//- @pugdoc +mixin navRadio(name, title, value='') + label.navRadio + input(class!=attributes.class, name=`attr_${name}`, type='radio', value=value, attributes.checked) + span(title=title) \ No newline at end of file diff --git a/Lames du Cardinal v2/src/components/widgets/widgets.sass b/Lames du Cardinal v2/src/components/widgets/widgets.sass new file mode 100644 index 000000000000..8d270ae07c0a --- /dev/null +++ b/Lames du Cardinal v2/src/components/widgets/widgets.sass @@ -0,0 +1,78 @@ +.charsheet + button.roll[type='roll'], + button.roll[type='action'] + display: flex + width: 20px + height: 20px + font-size: 20px + line-height: 20px + background: none + border: none + border-radius: 0 + margin: 0 + margin-top: 3px + box-shadow: none + padding: 2px 3px 0 3px + + &::before + font-family: 'dicefontd20' + content: '0' + &.small + width: 16px + height: 16px + line-height: 16px + font-size: 16px + margin-top: 0 + &:hover, + &:hover::before + font-weight: bold + &.white::before + color: white + + nav + width: 100% + &> label.navRadio + padding: 5px + align-items: center + justify-content: baseline + font-weight: bold + + &> input[type=radio] + @include checkable(12px) + + select option.optgroup[disabled] + color: black + background: #ddd + font-weight: bold + + label.textLabelled + border-bottom: 1px dotted black + width: calc(100% - 8px) + + &> span + font-style: italic + font-weight: bold + width: 20% + + &> input[type=text] + border: none + background: none + width: calc(80% - 10px) + margin-left: 10px + + /** Expand switches */ + label + &> input[type=checkbox][name='attr_expand'] + position: absolute + width: 10px + opacity: 0 + height: 20px + &~ span + width: 100% + vertical-align: center + &::before + display: flex + content: '►' + justify-content: center + &:checked ~ span::before + content: '▼' \ No newline at end of file diff --git a/Lames du Cardinal v2/src/init.js b/Lames du Cardinal v2/src/init.js new file mode 100644 index 000000000000..112f6a6efedb --- /dev/null +++ b/Lames du Cardinal v2/src/init.js @@ -0,0 +1,37 @@ + +/** + * Makes some initializations ! + */ +on('sheet:opened', ev => { + // inits half skills for claw group + updateHalfSkill('athletisme') + updateHalfSkill('autorite') + updateHalfSkill('bagarre') + updateHalfSkill('equitation') + updateHalfSkill('volonte') + updateHalfSkill('sk_griffe') + // inits half skills for blow group + updateHalfSkill('creation') + updateHalfSkill('debrouille') + updateHalfSkill('duperie') + updateHalfSkill('furtivite') + updateHalfSkill('vigilance') + updateHalfSkill('sk_souffle') + // inits half skills for claw group + updateHalfSkill('intrigue') + updateHalfSkill('negoce') + updateHalfSkill('persuasion') + updateHalfSkill('seduction') + updateHalfSkill('strategie') + updateHalfSkill('sk_sang') + // inits half skills for claw group + updateHalfSkill('erudition') + updateHalfSkill('investigation') + updateHalfSkill('medecine') + updateHalfSkill('technique') + updateHalfSkill('tir') + updateHalfSkill('sk_ecaille') + + setCursedArcana('arcane1') + setCursedArcana('arcane2') +}) \ No newline at end of file diff --git a/Lames du Cardinal v2/src/lames_cardinal.pug b/Lames du Cardinal v2/src/lames_cardinal.pug new file mode 100644 index 000000000000..01c9c2379edd --- /dev/null +++ b/Lames du Cardinal v2/src/lames_cardinal.pug @@ -0,0 +1,28 @@ +include components/components + ++hiddenInput('page', 'personnage') +main + nav#menu.menu + +navRadio('page', 'Personnage', 'personnage') + +navRadio('page', 'Compétences', 'competences') + +navRadio('page', 'Escrime', 'escrime') + +navRadio('page', 'Ressources & contacts', 'ressources') + + div + +swordbar() + include modules/1-personnage/personnage + include modules/2-competences/competences + include modules/3-escrime/escrime + include modules/4-ressources/ressources + +script(type='text/worker') + include components/nstatebox/nstatebox.js + include components/swordbar/swordbar.js + include components/carac/carac.js + include components/skill/skill.js + include components/blessedarcana/blessedarcana.js + + include modules/1-personnage/personnage.js + include modules/2-competences/competences.js + + include init.js \ No newline at end of file diff --git a/Lames du Cardinal v2/src/lames_cardinal.sass b/Lames du Cardinal v2/src/lames_cardinal.sass new file mode 100644 index 000000000000..cfd149e37883 --- /dev/null +++ b/Lames du Cardinal v2/src/lames_cardinal.sass @@ -0,0 +1,10 @@ +@import abstracts/_mixins +@import abstracts/variables +@import abstracts/_layout +@import abstracts/_typography +@import components/components + +@import modules/1-personnage/personnage +@import modules/2-competences/competences +@import modules/3-escrime/escrime +@import modules/4-ressources/ressources \ No newline at end of file diff --git a/Lames du Cardinal v2/src/modules/1-personnage/personnage.js b/Lames du Cardinal v2/src/modules/1-personnage/personnage.js new file mode 100644 index 000000000000..aca34c6901ab --- /dev/null +++ b/Lames du Cardinal v2/src/modules/1-personnage/personnage.js @@ -0,0 +1,5 @@ + +on('change:arcane1 change:arcane2', ev => { + let attrName = ev['sourceAttribute'] + setCursedArcana(attrName) +}) \ No newline at end of file diff --git a/Lames du Cardinal v2/src/modules/1-personnage/personnage.pug b/Lames du Cardinal v2/src/modules/1-personnage/personnage.pug new file mode 100644 index 000000000000..00d5ec805ee2 --- /dev/null +++ b/Lames du Cardinal v2/src/modules/1-personnage/personnage.pug @@ -0,0 +1,19 @@ +section.page#page-personnage + div#name + +textLabelled('nom', 'Nom', 'name') + div.col.col-2 + +textLabelled('age', 'Âge') + +textLabelled('sex', 'Sexe') + div.col.col-2 + +profile('profile-1') + +profile('profile-2') + div#arcanes + +blessedArcana('arcane1') + +blessedArcana('arcane2') + div#looking + .col2 + h3.blue Description + +textareaInput('description') + .col2 + h3.blue Habillement + +textareaInput('clothing') \ No newline at end of file diff --git a/Lames du Cardinal v2/src/modules/1-personnage/personnage.sass b/Lames du Cardinal v2/src/modules/1-personnage/personnage.sass new file mode 100644 index 000000000000..cda52f0f85dc --- /dev/null +++ b/Lames du Cardinal v2/src/modules/1-personnage/personnage.sass @@ -0,0 +1,27 @@ +.charsheet section#page-personnage + flex-direction: row + flex-wrap: wrap + align-content: flex-start + &> #name + width: 50% + height: 30px + &> #arcanes + padding-top: 12px + width: 100% + align-content: space-between + &> #looking + padding-top: 8px + width: 100% + align-content: space-between + flex-direction: row + &> .col2 + flex-wrap: wrap + width: 50% + & textarea, + & h3 + width: 100% + & textarea + @include textareaLined(24px, 22px) + font-family: 'Shadows Into Light' + font-style: italic + font-size: 16px \ No newline at end of file diff --git a/Lames du Cardinal v2/src/modules/2-competences/competences.js b/Lames du Cardinal v2/src/modules/2-competences/competences.js new file mode 100644 index 000000000000..930032946672 --- /dev/null +++ b/Lames du Cardinal v2/src/modules/2-competences/competences.js @@ -0,0 +1,7 @@ + +/** + * Updates half-skills on change + */ +on('change:athletisme change:autorite change:bagarre change:equitation change:volonte change:sk_griffe change:creation change:debrouille change:duperie change:furtivite change:vigilance change:sk_souffle change:intrigue change:negoce change:persuasion change:seduction change:strategie change:sk_sang change:erudition change:investigation change:medecine change:technique change:tir change:sk_ecaille', ev => { + updateHalfSkill(ev.sourceAttribute) +}) \ No newline at end of file diff --git a/Lames du Cardinal v2/src/modules/2-competences/competences.pug b/Lames du Cardinal v2/src/modules/2-competences/competences.pug new file mode 100644 index 000000000000..6dfc8bdc3238 --- /dev/null +++ b/Lames du Cardinal v2/src/modules/2-competences/competences.pug @@ -0,0 +1,40 @@ +section.page#page-competences + div#caracs + div#griffe.skillblock + +carac('puissance', 'Puissance').blue + +skill('athletisme', 'Athlétisme') + +skill('autorite', 'Autorité') + +skill('bagarre', 'Bagarre') + +skill('equitation', 'Équitation') + +skill('volonte', 'Volonté') + +skill('sk_griffe') + div#souffle.skillblock + +carac('vivacite', 'Vivacité').blue + +skill('creation', 'Création') + +skill('debrouille', 'Débrouille') + +skill('duperie', 'Duperie') + +skill('furtivite', 'Furtivité') + +skill('vigilance', 'Vigilance') + +skill('sk_souffle') + div#sang.skillblock + +carac('galanterie', 'Galanterie').red + +skill('intrigue', 'Intrigue') + +skill('negoce', 'Négoce') + +skill('persuasion', 'Persuasion') + +skill('seduction', 'Séduction') + +skill('strategie', 'Stratégie') + +skill('sk_sang') + div#ecaille.skillblock + +carac('finesse', 'Finesse').red + +skill('erudition', 'Érudition') + +skill('investigation', 'Investigation') + +skill('medecine', 'Médecine') + +skill('technique', 'Technique') + +skill('tir', 'Tir') + +skill('sk_ecaille') + div#freeskills + div#escrime.col.col-2 + +headerSkill('escrime', 'Escrime', 4).blue + div#occultisme.col.col-2 + +headerSkill('occultisme', 'Occultisme', 0).red + +textInput('occultisme_notes', '') \ No newline at end of file diff --git a/Lames du Cardinal v2/src/modules/2-competences/competences.sass b/Lames du Cardinal v2/src/modules/2-competences/competences.sass new file mode 100644 index 000000000000..05ea6daf46a9 --- /dev/null +++ b/Lames du Cardinal v2/src/modules/2-competences/competences.sass @@ -0,0 +1,39 @@ +.charsheet section#page-competences + &> div#caracs + display: flex + flex-direction: row + &> div.skillblock + display: flex + width: 25% + flex-direction: column + + & > .carac > .icon + width: 50px + height: 50px + display: block + background-size: contain + background-position: center + background-repeat: no-repeat + margin-left: calc(50% - 40px) + + &#griffe > .carac > .icon + background-image: url("#{$IMAGES_ROOT}griffe.png") + &#souffle > .carac > .icon + background-image: url("#{$IMAGES_ROOT}souffle.png") + &#sang > .carac > .icon + background-image: url("#{$IMAGES_ROOT}sang.png") + &#ecaille > .carac > .icon + background-image: url("#{$IMAGES_ROOT}ecaille.png") + + &> div#freeskills + margin-top: 15px + display: flex + flex-direction: row + width: 100% + + &> #occultisme > input[type=text] + background: none + border: none + border-bottom: dotted black 1px + border-radius: 0 + width: 100% \ No newline at end of file diff --git a/Lames du Cardinal v2/src/modules/3-escrime/escrime.pug b/Lames du Cardinal v2/src/modules/3-escrime/escrime.pug new file mode 100644 index 000000000000..55c7afc71e4b --- /dev/null +++ b/Lames du Cardinal v2/src/modules/3-escrime/escrime.pug @@ -0,0 +1,19 @@ +section.page#page-escrime + .col-2 + h4.blue Armes + +textInput('armes') + h4 Feintes + fieldset.repeating_feintes + +cbButton('expand', ' ', 1) + +textInput('name') + +hiddenInput('expand') + +textareaInput('description') + .col-2 + h4.red École + +textInput('ecole') + h4 Bottes + fieldset.repeating_bottes + +cbButton('expand', ' ', 1) + +textInput('name') + +hiddenInput('expand') + +textareaInput('description') \ No newline at end of file diff --git a/Lames du Cardinal v2/src/modules/3-escrime/escrime.sass b/Lames du Cardinal v2/src/modules/3-escrime/escrime.sass new file mode 100644 index 000000000000..a8f3e8369f04 --- /dev/null +++ b/Lames du Cardinal v2/src/modules/3-escrime/escrime.sass @@ -0,0 +1,50 @@ +.charsheet section#page-escrime + margin-top: 15px + flex-direction: row + min-width: 660px + + &> .col-2 + &> h4 + width: 100% + &:not(:first-of-type) + margin-top: 25px + + &> input[type=text] + display: flex + width: 100% + background: none + border: none + border-bottom: 1px dotted grey + + &> .repcontainer + width: 100% + flex-direction: column + &> .repitem + width: 100% + // border-bottom: grey dotted 1px + display: flex + flex-wrap: wrap + flex-direction: row + + &> label + width: 15px + height: 20px + + &> input[type=text] + width: calc(100% - 26px) + height: 20px + background: none + border: none + border-bottom: 1px dotted gray + + &> textarea + width: 100% + height: 72px + @include textareaLined(24px, 22px) + font-family: 'Shadows Into Light' + font-style: italic + font-size: 14px + border: none + display: none + &> input[type=hidden][value='1'] ~ textarea + display: flex \ No newline at end of file diff --git a/Lames du Cardinal v2/src/modules/4-ressources/ressources.pug b/Lames du Cardinal v2/src/modules/4-ressources/ressources.pug new file mode 100644 index 000000000000..9f3e891b4626 --- /dev/null +++ b/Lames du Cardinal v2/src/modules/4-ressources/ressources.pug @@ -0,0 +1,18 @@ +section.page#page-ressources + .col.col-2#inventory + h4.blue Ressources + +fillLeft('resources', '', 8, 0) + h4.red Possessions + +textareaInput(`inventory`)#inventory + .col.col-2#contacts + h4.red Contacts + +fillLeft('concacts', '', 8, 0) + h4.blue Relations + span Niveau + fieldset.repeating_relations + +cbButton('expand', ' ', 1) + +textInput('name') + +numberInput('level') + +hiddenInput('expand') + +textareaInput('description') + diff --git a/Lames du Cardinal v2/src/modules/4-ressources/ressources.sass b/Lames du Cardinal v2/src/modules/4-ressources/ressources.sass new file mode 100644 index 000000000000..b50de2758adb --- /dev/null +++ b/Lames du Cardinal v2/src/modules/4-ressources/ressources.sass @@ -0,0 +1,69 @@ +.charsheet section#page-ressources + flex-direction: row + flex-wrap: wrap + align-content: space-between + min-width: 660px + + &> .col-2 + + &> h4 + width: 100% + display: flex + &:not(:first-of-type) + margin-top: 25px + & > span + font-size: .9em + font-style: italic + color: black + float: right + margin-left: calc(100% - 100px) + + + &> .fillLeft + width: 100% + + & #inventory textarea + @include textareaLined(20px, 16px) + width: calc(100% - 20px) + min-height: 440px + font-family: 'Shadows Into Light' + + & #contacts + &> .repcontainer + width: 100% + flex-direction: column + &> .repitem + width: 100% + display: flex + flex-wrap: wrap + flex-direction: row + &> label + width: 15px + height: 20px + + &> input[type=text] + width: calc(100% - 26px - 40px) + height: 20px + background: none + border: none + border-bottom: 1px dotted gray + + &> input[type=number] + width: 38px + height: 20px + background: none + border: none + border-bottom: 1px dotted gray + + // On cacche le textarea + &> textarea + width: 100% + height: 72px + @include textareaLined(24px, 22px) + font-family: 'Shadows Into Light' + font-style: italic + font-size: 14px + border: none + display: none + &> input[type=hidden][value='1'] ~ textarea + display: flex \ No newline at end of file