From 1ff1425777f1dd4ba7185e354d76c3e77cd14dec Mon Sep 17 00:00:00 2001 From: LeRatierBretonnier Date: Mon, 13 Apr 2026 15:53:13 +0200 Subject: [PATCH] Initial release for FoundryVTT --- assets/fonts/im-fell-english-sc.ttf | Bin 0 -> 179108 bytes assets/icons/items/imported/angon.svg | 6 + .../items/imported/arbalete-a-repetition.svg | 6 + assets/icons/items/imported/arc-court.svg | 6 + assets/icons/items/imported/arc-de-chasse.svg | 6 + assets/icons/items/imported/arc-nomade.svg | 6 + assets/icons/items/imported/arquebuse.svg | 6 + assets/icons/items/imported/bardiche.svg | 6 + assets/icons/items/imported/baton-cloute.svg | 6 + assets/icons/items/imported/baton-fronde.svg | 6 + assets/icons/items/imported/bolas.svg | 6 + .../icons/items/imported/bouclier-de-bois.svg | 6 + assets/icons/items/imported/brigandine.svg | 6 + assets/icons/items/imported/broigne.svg | 6 + .../icons/items/imported/casque-rouille-4.svg | 6 + assets/icons/items/imported/cimeterre.svg | 6 + .../icons/items/imported/cotte-d-anneaux.svg | 6 + assets/icons/items/imported/couleuvrine.svg | 6 + assets/icons/items/imported/coutelas.svg | 6 + assets/icons/items/imported/cuir-bouilli.svg | 6 + assets/icons/items/imported/cuir-cloute.svg | 6 + .../items/imported/cuir-maille-et-pavois.svg | 6 + .../cuir-moisi-et-maille-rouillee.svg | 6 + .../cuir-renforce-4-et-petit-bouclier.svg | 6 + .../icons/items/imported/cuir-renforce-4.svg | 6 + assets/icons/items/imported/cuirasse-6.svg | 6 + assets/icons/items/imported/cuirasse-8.svg | 6 + .../items/imported/cuirasse-damasquinee.svg | 6 + .../imported/cuirasse-maille-et-coiffe.svg | 6 + .../items/imported/cuirasse-rouillee.svg | 6 + assets/icons/items/imported/dague.svg | 6 + assets/icons/items/imported/epee-batarde.svg | 6 + assets/icons/items/imported/epee-courte.svg | 6 + .../items/imported/epee-et-main-gauche.svg | 6 + assets/icons/items/imported/faux.svg | 6 + assets/icons/items/imported/fleau-d-armes.svg | 6 + assets/icons/items/imported/flechettes.svg | 6 + assets/icons/items/imported/fouet.svg | 6 + assets/icons/items/imported/framee.svg | 6 + assets/icons/items/imported/francisque.svg | 6 + .../items/imported/fronde-billes-d-acier.svg | 6 + assets/icons/items/imported/fronde.svg | 6 + assets/icons/items/imported/gambison.svg | 6 + assets/icons/items/imported/glaive.svg | 6 + assets/icons/items/imported/gourdin.svg | 6 + assets/icons/items/imported/grenades.svg | 6 + assets/icons/items/imported/guisarme.svg | 6 + .../icons/items/imported/hache-de-guerre.svg | 6 + .../icons/items/imported/haches-de-lancer.svg | 6 + assets/icons/items/imported/hachette.svg | 6 + assets/icons/items/imported/hallebarde.svg | 6 + .../icons/items/imported/harnois-de-cuir.svg | 6 + .../items/imported/harnois-et-bouclier.svg | 6 + .../icons/items/imported/haubert-rouille.svg | 6 + assets/icons/items/imported/haubert.svg | 6 + assets/icons/items/imported/javeline.svg | 6 + assets/icons/items/imported/javelot.svg | 6 + assets/icons/items/imported/katana.svg | 6 + .../icons/items/imported/lame-boomerang.svg | 6 + assets/icons/items/imported/lance-javelot.svg | 6 + assets/icons/items/imported/lance.svg | 6 + .../items/imported/lorique-mal-ajustee.svg | 6 + assets/icons/items/imported/machette.svg | 6 + assets/icons/items/imported/maille-trouee.svg | 6 + .../manteau-de-cuir-et-bouclier-rond.svg | 6 + .../items/imported/marteau-de-guerre.svg | 6 + assets/icons/items/imported/masse-d-armes.svg | 6 + .../icons/items/imported/masse-de-guerre.svg | 6 + .../icons/items/imported/massue-cloutee.svg | 6 + assets/icons/items/imported/matraque.svg | 6 + assets/icons/items/imported/mousquet.svg | 6 + assets/icons/items/imported/pertuisane.svg | 6 + .../icons/items/imported/pierres-polies.svg | 6 + assets/icons/items/imported/pique.svg | 6 + .../icons/items/imported/pistolet-de-duel.svg | 6 + .../items/imported/plaque-complete-et-ecu.svg | 6 + .../icons/items/imported/plaque-ouvragee.svg | 6 + .../icons/items/imported/plaque-rouillee.svg | 6 + .../icons/items/imported/poignards-de-jet.svg | 6 + assets/icons/items/imported/rapiere.svg | 6 + .../icons/items/imported/shurikens-lourds.svg | 6 + assets/icons/items/imported/shurikens.svg | 6 + assets/icons/items/imported/tromblon.svg | 6 + .../imported/tunique-de-cuir-et-toque-4.svg | 6 + .../items/imported/tunique-de-mailles.svg | 6 + assets/icons/items/imported/wakizashi.svg | 6 + assets/icons/system/actors/employe.svg | 6 + assets/icons/system/actors/pnj.svg | 6 + assets/icons/system/departments/arpentage.svg | 6 + .../icons/system/departments/conception.svg | 6 + .../system/departments/conditionnement.svg | 6 + .../system/departments/entrees-sorties.svg | 6 + assets/icons/system/departments/entretien.svg | 6 + .../icons/system/departments/exploration.svg | 6 + assets/icons/system/departments/materiel.svg | 6 + assets/icons/system/departments/reception.svg | 6 + assets/icons/system/departments/reclame.svg | 6 + .../icons/system/departments/recrutement.svg | 6 + .../departments/relations-interieures.svg | 6 + .../system/departments/relations-mecenes.svg | 6 + .../icons/system/departments/supervision.svg | 6 + .../icons/system/departments/terminaison.svg | 6 + assets/icons/system/items/arme.svg | 6 + assets/icons/system/items/armure.svg | 6 + assets/icons/system/items/autre.svg | 10 + assets/icons/system/items/capacite.svg | 6 + assets/icons/system/items/consommable.svg | 6 + assets/icons/system/items/equipement.svg | 6 + assets/icons/system/items/langue.svg | 6 + assets/icons/system/items/sortilege.svg | 6 + assets/icons/system/items/trait.svg | 6 + .../icons/system/mechanics/avertissement.svg | 6 + assets/icons/system/mechanics/chaos.svg | 6 + assets/icons/system/mechanics/de-de-vie.svg | 6 + assets/icons/system/mechanics/degats.svg | 6 + assets/icons/system/mechanics/faveur.svg | 6 + assets/icons/system/mechanics/focus.svg | 6 + assets/icons/system/mechanics/initiative.svg | 6 + assets/icons/system/mechanics/mission.svg | 6 + assets/icons/system/mechanics/objectif.svg | 6 + assets/icons/system/mechanics/suspicion.svg | 6 + assets/ui/logo_01.webp | Bin 0 -> 81046 bytes gulpfile.js | 22 + lang/fr.json | 30 + less/actor-sheet.less | 267 + less/base.less | 232 + less/chat.less | 465 ++ less/components.less | 49 + less/dialogs.less | 36 + less/donjon-et-cie.less | 7 + less/item-sheet.less | 33 + less/variables.less | 27 + .../donjon-et-cie-roll-dialog.mjs | 223 + modules/applications/sheets/_module.mjs | 3 + .../applications/sheets/base-actor-sheet.mjs | 225 + .../applications/sheets/base-item-sheet.mjs | 110 + .../sheets/donjon-et-cie-employe-sheet.mjs | 37 + .../sheets/donjon-et-cie-pnj-sheet.mjs | 57 + modules/donjon-et-cie-actor.mjs | 203 + modules/donjon-et-cie-config.mjs | 117 + modules/donjon-et-cie-item.mjs | 45 + modules/donjon-et-cie-main.mjs | 103 + modules/donjon-et-cie-rolls.mjs | 546 ++ modules/donjon-et-cie-utility.mjs | 189 + modules/models/arme.mjs | 16 + modules/models/armure.mjs | 14 + modules/models/base-item.mjs | 9 + modules/models/capacite.mjs | 12 + modules/models/consommable.mjs | 13 + modules/models/employe.mjs | 66 + modules/models/equipement.mjs | 13 + modules/models/index.mjs | 11 + modules/models/langue.mjs | 11 + modules/models/pnj.mjs | 36 + modules/models/sortilege.mjs | 17 + modules/models/trait.mjs | 11 + package-lock.json | 4983 +++++++++++++++++ package.json | 17 + packs/equipment/000014.ldb | Bin 0 -> 41244 bytes packs/equipment/000017.log | 0 packs/equipment/CURRENT | 1 + packs/equipment/LOCK | 0 packs/equipment/LOG | 8 + packs/equipment/LOG.old | 15 + packs/equipment/MANIFEST-000015 | Bin 0 -> 173 bytes packs/random-tables/000004.log | 0 packs/random-tables/000005.ldb | Bin 0 -> 39147 bytes packs/random-tables/CURRENT | 1 + packs/random-tables/LOCK | 0 packs/random-tables/LOG | 5 + packs/random-tables/MANIFEST-000002 | Bin 0 -> 163 bytes styles/donjon-et-cie.css | 912 +++ styles/donjon-et-cie.css.map | 1 + system.json | 127 + templates/actors/employe-sheet.hbs | 416 ++ templates/actors/pnj-sheet.hbs | 184 + templates/chat/chaos-card.hbs | 30 + templates/chat/damage-application-card.hbs | 29 + templates/chat/damage-card.hbs | 48 + templates/chat/favor-card.hbs | 17 + templates/chat/hit-dice-card.hbs | 23 + templates/chat/initiative-card.hbs | 43 + templates/chat/item-card.hbs | 20 + templates/chat/roll-card.hbs | 38 + templates/chat/spell-card.hbs | 72 + templates/chat/usage-card.hbs | 26 + templates/dialogs/characteristic-roll.hbs | 20 + templates/dialogs/damage-roll.hbs | 12 + templates/dialogs/initiative-roll.hbs | 12 + templates/dialogs/spell-roll.hbs | 47 + templates/dialogs/usage-roll.hbs | 12 + templates/dialogs/weapon-roll.hbs | 21 + templates/items/item-sheet.hbs | 151 + 193 files changed, 11270 insertions(+) create mode 100644 assets/fonts/im-fell-english-sc.ttf create mode 100644 assets/icons/items/imported/angon.svg create mode 100644 assets/icons/items/imported/arbalete-a-repetition.svg create mode 100644 assets/icons/items/imported/arc-court.svg create mode 100644 assets/icons/items/imported/arc-de-chasse.svg create mode 100644 assets/icons/items/imported/arc-nomade.svg create mode 100644 assets/icons/items/imported/arquebuse.svg create mode 100644 assets/icons/items/imported/bardiche.svg create mode 100644 assets/icons/items/imported/baton-cloute.svg create mode 100644 assets/icons/items/imported/baton-fronde.svg create mode 100644 assets/icons/items/imported/bolas.svg create mode 100644 assets/icons/items/imported/bouclier-de-bois.svg create mode 100644 assets/icons/items/imported/brigandine.svg create mode 100644 assets/icons/items/imported/broigne.svg create mode 100644 assets/icons/items/imported/casque-rouille-4.svg create mode 100644 assets/icons/items/imported/cimeterre.svg create mode 100644 assets/icons/items/imported/cotte-d-anneaux.svg create mode 100644 assets/icons/items/imported/couleuvrine.svg create mode 100644 assets/icons/items/imported/coutelas.svg create mode 100644 assets/icons/items/imported/cuir-bouilli.svg create mode 100644 assets/icons/items/imported/cuir-cloute.svg create mode 100644 assets/icons/items/imported/cuir-maille-et-pavois.svg create mode 100644 assets/icons/items/imported/cuir-moisi-et-maille-rouillee.svg create mode 100644 assets/icons/items/imported/cuir-renforce-4-et-petit-bouclier.svg create mode 100644 assets/icons/items/imported/cuir-renforce-4.svg create mode 100644 assets/icons/items/imported/cuirasse-6.svg create mode 100644 assets/icons/items/imported/cuirasse-8.svg create mode 100644 assets/icons/items/imported/cuirasse-damasquinee.svg create mode 100644 assets/icons/items/imported/cuirasse-maille-et-coiffe.svg create mode 100644 assets/icons/items/imported/cuirasse-rouillee.svg create mode 100644 assets/icons/items/imported/dague.svg create mode 100644 assets/icons/items/imported/epee-batarde.svg create mode 100644 assets/icons/items/imported/epee-courte.svg create mode 100644 assets/icons/items/imported/epee-et-main-gauche.svg create mode 100644 assets/icons/items/imported/faux.svg create mode 100644 assets/icons/items/imported/fleau-d-armes.svg create mode 100644 assets/icons/items/imported/flechettes.svg create mode 100644 assets/icons/items/imported/fouet.svg create mode 100644 assets/icons/items/imported/framee.svg create mode 100644 assets/icons/items/imported/francisque.svg create mode 100644 assets/icons/items/imported/fronde-billes-d-acier.svg create mode 100644 assets/icons/items/imported/fronde.svg create mode 100644 assets/icons/items/imported/gambison.svg create mode 100644 assets/icons/items/imported/glaive.svg create mode 100644 assets/icons/items/imported/gourdin.svg create mode 100644 assets/icons/items/imported/grenades.svg create mode 100644 assets/icons/items/imported/guisarme.svg create mode 100644 assets/icons/items/imported/hache-de-guerre.svg create mode 100644 assets/icons/items/imported/haches-de-lancer.svg create mode 100644 assets/icons/items/imported/hachette.svg create mode 100644 assets/icons/items/imported/hallebarde.svg create mode 100644 assets/icons/items/imported/harnois-de-cuir.svg create mode 100644 assets/icons/items/imported/harnois-et-bouclier.svg create mode 100644 assets/icons/items/imported/haubert-rouille.svg create mode 100644 assets/icons/items/imported/haubert.svg create mode 100644 assets/icons/items/imported/javeline.svg create mode 100644 assets/icons/items/imported/javelot.svg create mode 100644 assets/icons/items/imported/katana.svg create mode 100644 assets/icons/items/imported/lame-boomerang.svg create mode 100644 assets/icons/items/imported/lance-javelot.svg create mode 100644 assets/icons/items/imported/lance.svg create mode 100644 assets/icons/items/imported/lorique-mal-ajustee.svg create mode 100644 assets/icons/items/imported/machette.svg create mode 100644 assets/icons/items/imported/maille-trouee.svg create mode 100644 assets/icons/items/imported/manteau-de-cuir-et-bouclier-rond.svg create mode 100644 assets/icons/items/imported/marteau-de-guerre.svg create mode 100644 assets/icons/items/imported/masse-d-armes.svg create mode 100644 assets/icons/items/imported/masse-de-guerre.svg create mode 100644 assets/icons/items/imported/massue-cloutee.svg create mode 100644 assets/icons/items/imported/matraque.svg create mode 100644 assets/icons/items/imported/mousquet.svg create mode 100644 assets/icons/items/imported/pertuisane.svg create mode 100644 assets/icons/items/imported/pierres-polies.svg create mode 100644 assets/icons/items/imported/pique.svg create mode 100644 assets/icons/items/imported/pistolet-de-duel.svg create mode 100644 assets/icons/items/imported/plaque-complete-et-ecu.svg create mode 100644 assets/icons/items/imported/plaque-ouvragee.svg create mode 100644 assets/icons/items/imported/plaque-rouillee.svg create mode 100644 assets/icons/items/imported/poignards-de-jet.svg create mode 100644 assets/icons/items/imported/rapiere.svg create mode 100644 assets/icons/items/imported/shurikens-lourds.svg create mode 100644 assets/icons/items/imported/shurikens.svg create mode 100644 assets/icons/items/imported/tromblon.svg create mode 100644 assets/icons/items/imported/tunique-de-cuir-et-toque-4.svg create mode 100644 assets/icons/items/imported/tunique-de-mailles.svg create mode 100644 assets/icons/items/imported/wakizashi.svg create mode 100644 assets/icons/system/actors/employe.svg create mode 100644 assets/icons/system/actors/pnj.svg create mode 100644 assets/icons/system/departments/arpentage.svg create mode 100644 assets/icons/system/departments/conception.svg create mode 100644 assets/icons/system/departments/conditionnement.svg create mode 100644 assets/icons/system/departments/entrees-sorties.svg create mode 100644 assets/icons/system/departments/entretien.svg create mode 100644 assets/icons/system/departments/exploration.svg create mode 100644 assets/icons/system/departments/materiel.svg create mode 100644 assets/icons/system/departments/reception.svg create mode 100644 assets/icons/system/departments/reclame.svg create mode 100644 assets/icons/system/departments/recrutement.svg create mode 100644 assets/icons/system/departments/relations-interieures.svg create mode 100644 assets/icons/system/departments/relations-mecenes.svg create mode 100644 assets/icons/system/departments/supervision.svg create mode 100644 assets/icons/system/departments/terminaison.svg create mode 100644 assets/icons/system/items/arme.svg create mode 100644 assets/icons/system/items/armure.svg create mode 100644 assets/icons/system/items/autre.svg create mode 100644 assets/icons/system/items/capacite.svg create mode 100644 assets/icons/system/items/consommable.svg create mode 100644 assets/icons/system/items/equipement.svg create mode 100644 assets/icons/system/items/langue.svg create mode 100644 assets/icons/system/items/sortilege.svg create mode 100644 assets/icons/system/items/trait.svg create mode 100644 assets/icons/system/mechanics/avertissement.svg create mode 100644 assets/icons/system/mechanics/chaos.svg create mode 100644 assets/icons/system/mechanics/de-de-vie.svg create mode 100644 assets/icons/system/mechanics/degats.svg create mode 100644 assets/icons/system/mechanics/faveur.svg create mode 100644 assets/icons/system/mechanics/focus.svg create mode 100644 assets/icons/system/mechanics/initiative.svg create mode 100644 assets/icons/system/mechanics/mission.svg create mode 100644 assets/icons/system/mechanics/objectif.svg create mode 100644 assets/icons/system/mechanics/suspicion.svg create mode 100644 assets/ui/logo_01.webp create mode 100644 gulpfile.js create mode 100644 lang/fr.json create mode 100644 less/actor-sheet.less create mode 100644 less/base.less create mode 100644 less/chat.less create mode 100644 less/components.less create mode 100644 less/dialogs.less create mode 100644 less/donjon-et-cie.less create mode 100644 less/item-sheet.less create mode 100644 less/variables.less create mode 100644 modules/applications/donjon-et-cie-roll-dialog.mjs create mode 100644 modules/applications/sheets/_module.mjs create mode 100644 modules/applications/sheets/base-actor-sheet.mjs create mode 100644 modules/applications/sheets/base-item-sheet.mjs create mode 100644 modules/applications/sheets/donjon-et-cie-employe-sheet.mjs create mode 100644 modules/applications/sheets/donjon-et-cie-pnj-sheet.mjs create mode 100644 modules/donjon-et-cie-actor.mjs create mode 100644 modules/donjon-et-cie-config.mjs create mode 100644 modules/donjon-et-cie-item.mjs create mode 100644 modules/donjon-et-cie-main.mjs create mode 100644 modules/donjon-et-cie-rolls.mjs create mode 100644 modules/donjon-et-cie-utility.mjs create mode 100644 modules/models/arme.mjs create mode 100644 modules/models/armure.mjs create mode 100644 modules/models/base-item.mjs create mode 100644 modules/models/capacite.mjs create mode 100644 modules/models/consommable.mjs create mode 100644 modules/models/employe.mjs create mode 100644 modules/models/equipement.mjs create mode 100644 modules/models/index.mjs create mode 100644 modules/models/langue.mjs create mode 100644 modules/models/pnj.mjs create mode 100644 modules/models/sortilege.mjs create mode 100644 modules/models/trait.mjs create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 packs/equipment/000014.ldb create mode 100644 packs/equipment/000017.log create mode 100644 packs/equipment/CURRENT create mode 100644 packs/equipment/LOCK create mode 100644 packs/equipment/LOG create mode 100644 packs/equipment/LOG.old create mode 100644 packs/equipment/MANIFEST-000015 create mode 100644 packs/random-tables/000004.log create mode 100644 packs/random-tables/000005.ldb create mode 100644 packs/random-tables/CURRENT create mode 100644 packs/random-tables/LOCK create mode 100644 packs/random-tables/LOG create mode 100644 packs/random-tables/MANIFEST-000002 create mode 100644 styles/donjon-et-cie.css create mode 100644 styles/donjon-et-cie.css.map create mode 100644 system.json create mode 100644 templates/actors/employe-sheet.hbs create mode 100644 templates/actors/pnj-sheet.hbs create mode 100644 templates/chat/chaos-card.hbs create mode 100644 templates/chat/damage-application-card.hbs create mode 100644 templates/chat/damage-card.hbs create mode 100644 templates/chat/favor-card.hbs create mode 100644 templates/chat/hit-dice-card.hbs create mode 100644 templates/chat/initiative-card.hbs create mode 100644 templates/chat/item-card.hbs create mode 100644 templates/chat/roll-card.hbs create mode 100644 templates/chat/spell-card.hbs create mode 100644 templates/chat/usage-card.hbs create mode 100644 templates/dialogs/characteristic-roll.hbs create mode 100644 templates/dialogs/damage-roll.hbs create mode 100644 templates/dialogs/initiative-roll.hbs create mode 100644 templates/dialogs/spell-roll.hbs create mode 100644 templates/dialogs/usage-roll.hbs create mode 100644 templates/dialogs/weapon-roll.hbs create mode 100644 templates/items/item-sheet.hbs diff --git a/assets/fonts/im-fell-english-sc.ttf b/assets/fonts/im-fell-english-sc.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3d0f181c4049f157e61c7f5d81382ba0a9cfb4d7 GIT binary patch literal 179108 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

tK)=#p^v9!~TgkH6pub&<_eL;g8^j=L6GpYF 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 QUV)KaZ6Ln62X-+11z(dL3jhEB literal 0 HcmV?d00001 diff --git a/assets/icons/items/imported/angon.svg b/assets/icons/items/imported/angon.svg new file mode 100644 index 0000000..f598220 --- /dev/null +++ b/assets/icons/items/imported/angon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/arbalete-a-repetition.svg b/assets/icons/items/imported/arbalete-a-repetition.svg new file mode 100644 index 0000000..57174cd --- /dev/null +++ b/assets/icons/items/imported/arbalete-a-repetition.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/arc-court.svg b/assets/icons/items/imported/arc-court.svg new file mode 100644 index 0000000..43f2183 --- /dev/null +++ b/assets/icons/items/imported/arc-court.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/arc-de-chasse.svg b/assets/icons/items/imported/arc-de-chasse.svg new file mode 100644 index 0000000..43f2183 --- /dev/null +++ b/assets/icons/items/imported/arc-de-chasse.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/arc-nomade.svg b/assets/icons/items/imported/arc-nomade.svg new file mode 100644 index 0000000..43f2183 --- /dev/null +++ b/assets/icons/items/imported/arc-nomade.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/arquebuse.svg b/assets/icons/items/imported/arquebuse.svg new file mode 100644 index 0000000..1a825ef --- /dev/null +++ b/assets/icons/items/imported/arquebuse.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/bardiche.svg b/assets/icons/items/imported/bardiche.svg new file mode 100644 index 0000000..1e058c0 --- /dev/null +++ b/assets/icons/items/imported/bardiche.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/baton-cloute.svg b/assets/icons/items/imported/baton-cloute.svg new file mode 100644 index 0000000..55660fa --- /dev/null +++ b/assets/icons/items/imported/baton-cloute.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/baton-fronde.svg b/assets/icons/items/imported/baton-fronde.svg new file mode 100644 index 0000000..5391c0c --- /dev/null +++ b/assets/icons/items/imported/baton-fronde.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/bolas.svg b/assets/icons/items/imported/bolas.svg new file mode 100644 index 0000000..36dd4ff --- /dev/null +++ b/assets/icons/items/imported/bolas.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/bouclier-de-bois.svg b/assets/icons/items/imported/bouclier-de-bois.svg new file mode 100644 index 0000000..a2ac351 --- /dev/null +++ b/assets/icons/items/imported/bouclier-de-bois.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/brigandine.svg b/assets/icons/items/imported/brigandine.svg new file mode 100644 index 0000000..6af624d --- /dev/null +++ b/assets/icons/items/imported/brigandine.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/broigne.svg b/assets/icons/items/imported/broigne.svg new file mode 100644 index 0000000..6af624d --- /dev/null +++ b/assets/icons/items/imported/broigne.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/casque-rouille-4.svg b/assets/icons/items/imported/casque-rouille-4.svg new file mode 100644 index 0000000..06c58ec --- /dev/null +++ b/assets/icons/items/imported/casque-rouille-4.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/cimeterre.svg b/assets/icons/items/imported/cimeterre.svg new file mode 100644 index 0000000..64adcf4 --- /dev/null +++ b/assets/icons/items/imported/cimeterre.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/cotte-d-anneaux.svg b/assets/icons/items/imported/cotte-d-anneaux.svg new file mode 100644 index 0000000..42ef8b7 --- /dev/null +++ b/assets/icons/items/imported/cotte-d-anneaux.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/couleuvrine.svg b/assets/icons/items/imported/couleuvrine.svg new file mode 100644 index 0000000..1a825ef --- /dev/null +++ b/assets/icons/items/imported/couleuvrine.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/coutelas.svg b/assets/icons/items/imported/coutelas.svg new file mode 100644 index 0000000..b6bee6c --- /dev/null +++ b/assets/icons/items/imported/coutelas.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/cuir-bouilli.svg b/assets/icons/items/imported/cuir-bouilli.svg new file mode 100644 index 0000000..c05cfcf --- /dev/null +++ b/assets/icons/items/imported/cuir-bouilli.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/cuir-cloute.svg b/assets/icons/items/imported/cuir-cloute.svg new file mode 100644 index 0000000..c05cfcf --- /dev/null +++ b/assets/icons/items/imported/cuir-cloute.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/cuir-maille-et-pavois.svg b/assets/icons/items/imported/cuir-maille-et-pavois.svg new file mode 100644 index 0000000..92d84b1 --- /dev/null +++ b/assets/icons/items/imported/cuir-maille-et-pavois.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/cuir-moisi-et-maille-rouillee.svg b/assets/icons/items/imported/cuir-moisi-et-maille-rouillee.svg new file mode 100644 index 0000000..92d84b1 --- /dev/null +++ b/assets/icons/items/imported/cuir-moisi-et-maille-rouillee.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/cuir-renforce-4-et-petit-bouclier.svg b/assets/icons/items/imported/cuir-renforce-4-et-petit-bouclier.svg new file mode 100644 index 0000000..92d84b1 --- /dev/null +++ b/assets/icons/items/imported/cuir-renforce-4-et-petit-bouclier.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/cuir-renforce-4.svg b/assets/icons/items/imported/cuir-renforce-4.svg new file mode 100644 index 0000000..c05cfcf --- /dev/null +++ b/assets/icons/items/imported/cuir-renforce-4.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/cuirasse-6.svg b/assets/icons/items/imported/cuirasse-6.svg new file mode 100644 index 0000000..6af624d --- /dev/null +++ b/assets/icons/items/imported/cuirasse-6.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/cuirasse-8.svg b/assets/icons/items/imported/cuirasse-8.svg new file mode 100644 index 0000000..6af624d --- /dev/null +++ b/assets/icons/items/imported/cuirasse-8.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/cuirasse-damasquinee.svg b/assets/icons/items/imported/cuirasse-damasquinee.svg new file mode 100644 index 0000000..6af624d --- /dev/null +++ b/assets/icons/items/imported/cuirasse-damasquinee.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/cuirasse-maille-et-coiffe.svg b/assets/icons/items/imported/cuirasse-maille-et-coiffe.svg new file mode 100644 index 0000000..92d84b1 --- /dev/null +++ b/assets/icons/items/imported/cuirasse-maille-et-coiffe.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/cuirasse-rouillee.svg b/assets/icons/items/imported/cuirasse-rouillee.svg new file mode 100644 index 0000000..6af624d --- /dev/null +++ b/assets/icons/items/imported/cuirasse-rouillee.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/dague.svg b/assets/icons/items/imported/dague.svg new file mode 100644 index 0000000..b6bee6c --- /dev/null +++ b/assets/icons/items/imported/dague.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/epee-batarde.svg b/assets/icons/items/imported/epee-batarde.svg new file mode 100644 index 0000000..64adcf4 --- /dev/null +++ b/assets/icons/items/imported/epee-batarde.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/epee-courte.svg b/assets/icons/items/imported/epee-courte.svg new file mode 100644 index 0000000..64adcf4 --- /dev/null +++ b/assets/icons/items/imported/epee-courte.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/epee-et-main-gauche.svg b/assets/icons/items/imported/epee-et-main-gauche.svg new file mode 100644 index 0000000..64adcf4 --- /dev/null +++ b/assets/icons/items/imported/epee-et-main-gauche.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/faux.svg b/assets/icons/items/imported/faux.svg new file mode 100644 index 0000000..4e3d79c --- /dev/null +++ b/assets/icons/items/imported/faux.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/fleau-d-armes.svg b/assets/icons/items/imported/fleau-d-armes.svg new file mode 100644 index 0000000..b327fcf --- /dev/null +++ b/assets/icons/items/imported/fleau-d-armes.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/flechettes.svg b/assets/icons/items/imported/flechettes.svg new file mode 100644 index 0000000..f598220 --- /dev/null +++ b/assets/icons/items/imported/flechettes.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/fouet.svg b/assets/icons/items/imported/fouet.svg new file mode 100644 index 0000000..3496d63 --- /dev/null +++ b/assets/icons/items/imported/fouet.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/framee.svg b/assets/icons/items/imported/framee.svg new file mode 100644 index 0000000..f598220 --- /dev/null +++ b/assets/icons/items/imported/framee.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/francisque.svg b/assets/icons/items/imported/francisque.svg new file mode 100644 index 0000000..1e058c0 --- /dev/null +++ b/assets/icons/items/imported/francisque.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/fronde-billes-d-acier.svg b/assets/icons/items/imported/fronde-billes-d-acier.svg new file mode 100644 index 0000000..5391c0c --- /dev/null +++ b/assets/icons/items/imported/fronde-billes-d-acier.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/fronde.svg b/assets/icons/items/imported/fronde.svg new file mode 100644 index 0000000..5391c0c --- /dev/null +++ b/assets/icons/items/imported/fronde.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/gambison.svg b/assets/icons/items/imported/gambison.svg new file mode 100644 index 0000000..c05cfcf --- /dev/null +++ b/assets/icons/items/imported/gambison.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/glaive.svg b/assets/icons/items/imported/glaive.svg new file mode 100644 index 0000000..4e3d79c --- /dev/null +++ b/assets/icons/items/imported/glaive.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/gourdin.svg b/assets/icons/items/imported/gourdin.svg new file mode 100644 index 0000000..55660fa --- /dev/null +++ b/assets/icons/items/imported/gourdin.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/grenades.svg b/assets/icons/items/imported/grenades.svg new file mode 100644 index 0000000..327e31e --- /dev/null +++ b/assets/icons/items/imported/grenades.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/guisarme.svg b/assets/icons/items/imported/guisarme.svg new file mode 100644 index 0000000..4e3d79c --- /dev/null +++ b/assets/icons/items/imported/guisarme.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/hache-de-guerre.svg b/assets/icons/items/imported/hache-de-guerre.svg new file mode 100644 index 0000000..1e058c0 --- /dev/null +++ b/assets/icons/items/imported/hache-de-guerre.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/haches-de-lancer.svg b/assets/icons/items/imported/haches-de-lancer.svg new file mode 100644 index 0000000..1e058c0 --- /dev/null +++ b/assets/icons/items/imported/haches-de-lancer.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/hachette.svg b/assets/icons/items/imported/hachette.svg new file mode 100644 index 0000000..1e058c0 --- /dev/null +++ b/assets/icons/items/imported/hachette.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/hallebarde.svg b/assets/icons/items/imported/hallebarde.svg new file mode 100644 index 0000000..4e3d79c --- /dev/null +++ b/assets/icons/items/imported/hallebarde.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/harnois-de-cuir.svg b/assets/icons/items/imported/harnois-de-cuir.svg new file mode 100644 index 0000000..c05cfcf --- /dev/null +++ b/assets/icons/items/imported/harnois-de-cuir.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/harnois-et-bouclier.svg b/assets/icons/items/imported/harnois-et-bouclier.svg new file mode 100644 index 0000000..92d84b1 --- /dev/null +++ b/assets/icons/items/imported/harnois-et-bouclier.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/haubert-rouille.svg b/assets/icons/items/imported/haubert-rouille.svg new file mode 100644 index 0000000..42ef8b7 --- /dev/null +++ b/assets/icons/items/imported/haubert-rouille.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/haubert.svg b/assets/icons/items/imported/haubert.svg new file mode 100644 index 0000000..42ef8b7 --- /dev/null +++ b/assets/icons/items/imported/haubert.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/javeline.svg b/assets/icons/items/imported/javeline.svg new file mode 100644 index 0000000..f598220 --- /dev/null +++ b/assets/icons/items/imported/javeline.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/javelot.svg b/assets/icons/items/imported/javelot.svg new file mode 100644 index 0000000..f598220 --- /dev/null +++ b/assets/icons/items/imported/javelot.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/katana.svg b/assets/icons/items/imported/katana.svg new file mode 100644 index 0000000..64adcf4 --- /dev/null +++ b/assets/icons/items/imported/katana.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/lame-boomerang.svg b/assets/icons/items/imported/lame-boomerang.svg new file mode 100644 index 0000000..f598220 --- /dev/null +++ b/assets/icons/items/imported/lame-boomerang.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/lance-javelot.svg b/assets/icons/items/imported/lance-javelot.svg new file mode 100644 index 0000000..f598220 --- /dev/null +++ b/assets/icons/items/imported/lance-javelot.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/lance.svg b/assets/icons/items/imported/lance.svg new file mode 100644 index 0000000..4e3d79c --- /dev/null +++ b/assets/icons/items/imported/lance.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/lorique-mal-ajustee.svg b/assets/icons/items/imported/lorique-mal-ajustee.svg new file mode 100644 index 0000000..6af624d --- /dev/null +++ b/assets/icons/items/imported/lorique-mal-ajustee.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/machette.svg b/assets/icons/items/imported/machette.svg new file mode 100644 index 0000000..64adcf4 --- /dev/null +++ b/assets/icons/items/imported/machette.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/maille-trouee.svg b/assets/icons/items/imported/maille-trouee.svg new file mode 100644 index 0000000..42ef8b7 --- /dev/null +++ b/assets/icons/items/imported/maille-trouee.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/manteau-de-cuir-et-bouclier-rond.svg b/assets/icons/items/imported/manteau-de-cuir-et-bouclier-rond.svg new file mode 100644 index 0000000..92d84b1 --- /dev/null +++ b/assets/icons/items/imported/manteau-de-cuir-et-bouclier-rond.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/marteau-de-guerre.svg b/assets/icons/items/imported/marteau-de-guerre.svg new file mode 100644 index 0000000..55660fa --- /dev/null +++ b/assets/icons/items/imported/marteau-de-guerre.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/masse-d-armes.svg b/assets/icons/items/imported/masse-d-armes.svg new file mode 100644 index 0000000..55660fa --- /dev/null +++ b/assets/icons/items/imported/masse-d-armes.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/masse-de-guerre.svg b/assets/icons/items/imported/masse-de-guerre.svg new file mode 100644 index 0000000..55660fa --- /dev/null +++ b/assets/icons/items/imported/masse-de-guerre.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/massue-cloutee.svg b/assets/icons/items/imported/massue-cloutee.svg new file mode 100644 index 0000000..55660fa --- /dev/null +++ b/assets/icons/items/imported/massue-cloutee.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/matraque.svg b/assets/icons/items/imported/matraque.svg new file mode 100644 index 0000000..55660fa --- /dev/null +++ b/assets/icons/items/imported/matraque.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/mousquet.svg b/assets/icons/items/imported/mousquet.svg new file mode 100644 index 0000000..1a825ef --- /dev/null +++ b/assets/icons/items/imported/mousquet.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/pertuisane.svg b/assets/icons/items/imported/pertuisane.svg new file mode 100644 index 0000000..4e3d79c --- /dev/null +++ b/assets/icons/items/imported/pertuisane.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/pierres-polies.svg b/assets/icons/items/imported/pierres-polies.svg new file mode 100644 index 0000000..5391c0c --- /dev/null +++ b/assets/icons/items/imported/pierres-polies.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/pique.svg b/assets/icons/items/imported/pique.svg new file mode 100644 index 0000000..4e3d79c --- /dev/null +++ b/assets/icons/items/imported/pique.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/pistolet-de-duel.svg b/assets/icons/items/imported/pistolet-de-duel.svg new file mode 100644 index 0000000..24f7ade --- /dev/null +++ b/assets/icons/items/imported/pistolet-de-duel.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/plaque-complete-et-ecu.svg b/assets/icons/items/imported/plaque-complete-et-ecu.svg new file mode 100644 index 0000000..92d84b1 --- /dev/null +++ b/assets/icons/items/imported/plaque-complete-et-ecu.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/plaque-ouvragee.svg b/assets/icons/items/imported/plaque-ouvragee.svg new file mode 100644 index 0000000..6af624d --- /dev/null +++ b/assets/icons/items/imported/plaque-ouvragee.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/plaque-rouillee.svg b/assets/icons/items/imported/plaque-rouillee.svg new file mode 100644 index 0000000..6af624d --- /dev/null +++ b/assets/icons/items/imported/plaque-rouillee.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/poignards-de-jet.svg b/assets/icons/items/imported/poignards-de-jet.svg new file mode 100644 index 0000000..f598220 --- /dev/null +++ b/assets/icons/items/imported/poignards-de-jet.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/rapiere.svg b/assets/icons/items/imported/rapiere.svg new file mode 100644 index 0000000..64adcf4 --- /dev/null +++ b/assets/icons/items/imported/rapiere.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/shurikens-lourds.svg b/assets/icons/items/imported/shurikens-lourds.svg new file mode 100644 index 0000000..2ca486e --- /dev/null +++ b/assets/icons/items/imported/shurikens-lourds.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/shurikens.svg b/assets/icons/items/imported/shurikens.svg new file mode 100644 index 0000000..2ca486e --- /dev/null +++ b/assets/icons/items/imported/shurikens.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/tromblon.svg b/assets/icons/items/imported/tromblon.svg new file mode 100644 index 0000000..1a825ef --- /dev/null +++ b/assets/icons/items/imported/tromblon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/tunique-de-cuir-et-toque-4.svg b/assets/icons/items/imported/tunique-de-cuir-et-toque-4.svg new file mode 100644 index 0000000..92d84b1 --- /dev/null +++ b/assets/icons/items/imported/tunique-de-cuir-et-toque-4.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/tunique-de-mailles.svg b/assets/icons/items/imported/tunique-de-mailles.svg new file mode 100644 index 0000000..42ef8b7 --- /dev/null +++ b/assets/icons/items/imported/tunique-de-mailles.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/items/imported/wakizashi.svg b/assets/icons/items/imported/wakizashi.svg new file mode 100644 index 0000000..64adcf4 --- /dev/null +++ b/assets/icons/items/imported/wakizashi.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/actors/employe.svg b/assets/icons/system/actors/employe.svg new file mode 100644 index 0000000..211eac4 --- /dev/null +++ b/assets/icons/system/actors/employe.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/actors/pnj.svg b/assets/icons/system/actors/pnj.svg new file mode 100644 index 0000000..3d5e8c6 --- /dev/null +++ b/assets/icons/system/actors/pnj.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/departments/arpentage.svg b/assets/icons/system/departments/arpentage.svg new file mode 100644 index 0000000..8b44840 --- /dev/null +++ b/assets/icons/system/departments/arpentage.svg @@ -0,0 +1,6 @@ + + + + + AR + diff --git a/assets/icons/system/departments/conception.svg b/assets/icons/system/departments/conception.svg new file mode 100644 index 0000000..cd447b7 --- /dev/null +++ b/assets/icons/system/departments/conception.svg @@ -0,0 +1,6 @@ + + + + + CO + diff --git a/assets/icons/system/departments/conditionnement.svg b/assets/icons/system/departments/conditionnement.svg new file mode 100644 index 0000000..7896dce --- /dev/null +++ b/assets/icons/system/departments/conditionnement.svg @@ -0,0 +1,6 @@ + + + + + CN + diff --git a/assets/icons/system/departments/entrees-sorties.svg b/assets/icons/system/departments/entrees-sorties.svg new file mode 100644 index 0000000..622f7b2 --- /dev/null +++ b/assets/icons/system/departments/entrees-sorties.svg @@ -0,0 +1,6 @@ + + + + + ES + diff --git a/assets/icons/system/departments/entretien.svg b/assets/icons/system/departments/entretien.svg new file mode 100644 index 0000000..334e9a4 --- /dev/null +++ b/assets/icons/system/departments/entretien.svg @@ -0,0 +1,6 @@ + + + + + EN + diff --git a/assets/icons/system/departments/exploration.svg b/assets/icons/system/departments/exploration.svg new file mode 100644 index 0000000..f0f29fa --- /dev/null +++ b/assets/icons/system/departments/exploration.svg @@ -0,0 +1,6 @@ + + + + + EX + diff --git a/assets/icons/system/departments/materiel.svg b/assets/icons/system/departments/materiel.svg new file mode 100644 index 0000000..b330ae6 --- /dev/null +++ b/assets/icons/system/departments/materiel.svg @@ -0,0 +1,6 @@ + + + + + MA + diff --git a/assets/icons/system/departments/reception.svg b/assets/icons/system/departments/reception.svg new file mode 100644 index 0000000..924d635 --- /dev/null +++ b/assets/icons/system/departments/reception.svg @@ -0,0 +1,6 @@ + + + + + AC + diff --git a/assets/icons/system/departments/reclame.svg b/assets/icons/system/departments/reclame.svg new file mode 100644 index 0000000..3499cac --- /dev/null +++ b/assets/icons/system/departments/reclame.svg @@ -0,0 +1,6 @@ + + + + + RC + diff --git a/assets/icons/system/departments/recrutement.svg b/assets/icons/system/departments/recrutement.svg new file mode 100644 index 0000000..532222a --- /dev/null +++ b/assets/icons/system/departments/recrutement.svg @@ -0,0 +1,6 @@ + + + + + RE + diff --git a/assets/icons/system/departments/relations-interieures.svg b/assets/icons/system/departments/relations-interieures.svg new file mode 100644 index 0000000..52412e3 --- /dev/null +++ b/assets/icons/system/departments/relations-interieures.svg @@ -0,0 +1,6 @@ + + + + + RI + diff --git a/assets/icons/system/departments/relations-mecenes.svg b/assets/icons/system/departments/relations-mecenes.svg new file mode 100644 index 0000000..2413e68 --- /dev/null +++ b/assets/icons/system/departments/relations-mecenes.svg @@ -0,0 +1,6 @@ + + + + + RM + diff --git a/assets/icons/system/departments/supervision.svg b/assets/icons/system/departments/supervision.svg new file mode 100644 index 0000000..31fc786 --- /dev/null +++ b/assets/icons/system/departments/supervision.svg @@ -0,0 +1,6 @@ + + + + + SU + diff --git a/assets/icons/system/departments/terminaison.svg b/assets/icons/system/departments/terminaison.svg new file mode 100644 index 0000000..d53b5bd --- /dev/null +++ b/assets/icons/system/departments/terminaison.svg @@ -0,0 +1,6 @@ + + + + + TE + diff --git a/assets/icons/system/items/arme.svg b/assets/icons/system/items/arme.svg new file mode 100644 index 0000000..64adcf4 --- /dev/null +++ b/assets/icons/system/items/arme.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/items/armure.svg b/assets/icons/system/items/armure.svg new file mode 100644 index 0000000..a2ac351 --- /dev/null +++ b/assets/icons/system/items/armure.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/items/autre.svg b/assets/icons/system/items/autre.svg new file mode 100644 index 0000000..f1137e2 --- /dev/null +++ b/assets/icons/system/items/autre.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/icons/system/items/capacite.svg b/assets/icons/system/items/capacite.svg new file mode 100644 index 0000000..4fc3a0b --- /dev/null +++ b/assets/icons/system/items/capacite.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/items/consommable.svg b/assets/icons/system/items/consommable.svg new file mode 100644 index 0000000..8bcf097 --- /dev/null +++ b/assets/icons/system/items/consommable.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/items/equipement.svg b/assets/icons/system/items/equipement.svg new file mode 100644 index 0000000..5f5f26c --- /dev/null +++ b/assets/icons/system/items/equipement.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/items/langue.svg b/assets/icons/system/items/langue.svg new file mode 100644 index 0000000..88ca23f --- /dev/null +++ b/assets/icons/system/items/langue.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/items/sortilege.svg b/assets/icons/system/items/sortilege.svg new file mode 100644 index 0000000..e90da0f --- /dev/null +++ b/assets/icons/system/items/sortilege.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/items/trait.svg b/assets/icons/system/items/trait.svg new file mode 100644 index 0000000..7857e06 --- /dev/null +++ b/assets/icons/system/items/trait.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/mechanics/avertissement.svg b/assets/icons/system/mechanics/avertissement.svg new file mode 100644 index 0000000..1ce0ac0 --- /dev/null +++ b/assets/icons/system/mechanics/avertissement.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/mechanics/chaos.svg b/assets/icons/system/mechanics/chaos.svg new file mode 100644 index 0000000..899c3f5 --- /dev/null +++ b/assets/icons/system/mechanics/chaos.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/mechanics/de-de-vie.svg b/assets/icons/system/mechanics/de-de-vie.svg new file mode 100644 index 0000000..2eb8605 --- /dev/null +++ b/assets/icons/system/mechanics/de-de-vie.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/mechanics/degats.svg b/assets/icons/system/mechanics/degats.svg new file mode 100644 index 0000000..ba276da --- /dev/null +++ b/assets/icons/system/mechanics/degats.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/mechanics/faveur.svg b/assets/icons/system/mechanics/faveur.svg new file mode 100644 index 0000000..02a98cd --- /dev/null +++ b/assets/icons/system/mechanics/faveur.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/mechanics/focus.svg b/assets/icons/system/mechanics/focus.svg new file mode 100644 index 0000000..8f4c20f --- /dev/null +++ b/assets/icons/system/mechanics/focus.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/mechanics/initiative.svg b/assets/icons/system/mechanics/initiative.svg new file mode 100644 index 0000000..1fa76c6 --- /dev/null +++ b/assets/icons/system/mechanics/initiative.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/mechanics/mission.svg b/assets/icons/system/mechanics/mission.svg new file mode 100644 index 0000000..c97f17b --- /dev/null +++ b/assets/icons/system/mechanics/mission.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/mechanics/objectif.svg b/assets/icons/system/mechanics/objectif.svg new file mode 100644 index 0000000..4fc3a0b --- /dev/null +++ b/assets/icons/system/mechanics/objectif.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/system/mechanics/suspicion.svg b/assets/icons/system/mechanics/suspicion.svg new file mode 100644 index 0000000..d035f0e --- /dev/null +++ b/assets/icons/system/mechanics/suspicion.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/ui/logo_01.webp b/assets/ui/logo_01.webp new file mode 100644 index 0000000000000000000000000000000000000000..bd23f0fe35badfdc1420542d98be2106940311a8 GIT binary patch literal 81046 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 figcaption { + color: #ccc; + text-shadow: 0 0 10px rgba(255, 255, 255, 0.25); +} + +#pause > img { + opacity: 0; + height: 0; + width: 0; +} + +#pause::before { + content: ""; + display: block; + background: url("../assets/ui/logo_01.webp") center/contain no-repeat; + height: 200px; + width: 200px; + margin-bottom: 0.75rem; + animation: dnc-pause-logo 4.2s ease-in-out infinite; + transform-origin: 50% 50%; + filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.35)); +} + +@keyframes dnc-pause-logo { + 0%, + 100% { + transform: scale(0.98) translateY(0); + filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.3)); + } + + 50% { + transform: scale(1.03) translateY(-6px); + filter: drop-shadow(0 16px 26px rgba(0, 0, 0, 0.45)); + } +} + +.dnc-sheet { + display: flex; + flex-direction: column; + gap: @spacing-lg; + padding: @spacing-lg; +} + +.sheet-card { + border: 2px solid @color-border; + border-radius: @radius-md; + background: rgba(255, 248, 236, 0.92); + box-shadow: 0 6px 14px @color-shadow; + padding: @spacing-lg; +} + +.fvtt-donjon-et-cie .sheet-card h2, +.fvtt-donjon-et-cie .dnc-chat-card h2 { + margin: 0 0 @spacing-md; + font-family: @font-display !important; + font-size: 1.15rem; + color: @color-accent; + text-transform: uppercase; + letter-spacing: 0.04em; +} + +.sheet-header { + display: grid; + grid-template-columns: 140px 1fr; + gap: @spacing-lg; + align-items: start; +} + +.sheet-header.compact { + grid-template-columns: 110px 1fr; + gap: @spacing-md; +} + +.portrait { + position: relative; +} + +.portrait img { + width: 100%; + aspect-ratio: 1; + object-fit: cover; + border-radius: @radius-md; + border: 3px solid @color-border; + background: #fff; +} + +.icon-button { + position: absolute; + right: @spacing-sm; + bottom: @spacing-sm; + border: 0; + border-radius: 999px; + background: @color-panel-dark; + color: #fff; + width: 2rem; + height: 2rem; +} + +.identity-grid, +.identity-grid.two-columns { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: @spacing-md; +} + +.identity-grid.two-columns { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.dnc-employe-sheet .sheet-header.compact .identity-grid { + grid-template-columns: repeat(5, minmax(0, 1fr)); + gap: @spacing-sm @spacing-md; +} + +.dnc-employe-sheet .sheet-header.compact label { + gap: 0.25rem; +} + +.dnc-employe-sheet .sheet-header.compact input[type="number"] { + max-width: 4.75rem; +} + +.dnc-employe-sheet .sheet-header.compact .counter-field input[type="number"] { + max-width: 4rem; +} + +.dnc-pnj-sheet .sheet-header.compact .identity-grid { + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: @spacing-sm @spacing-md; +} + +.dnc-pnj-sheet .sheet-header.compact label { + gap: 0.25rem; +} + +.dnc-pnj-sheet .sheet-header.compact input[type="number"] { + width: 4.5rem; + max-width: 4.5rem; +} + +.dnc-pnj-sheet .sheet-header.compact .counter-field input[type="number"] { + width: 3.75rem; + max-width: 3.75rem; +} + +.dnc-sheet label { + display: flex; + flex-direction: column; + gap: @spacing-sm; +} + +.dnc-sheet label > span { + font-size: 0.8rem; + text-transform: uppercase; + letter-spacing: 0.04em; + color: @color-muted; +} + +.readonly-field { + display: flex; + flex-direction: column; + gap: @spacing-sm; +} + +.readonly-field > span { + font-size: 0.8rem; + text-transform: uppercase; + letter-spacing: 0.04em; + color: @color-muted; +} + +.readonly-field p { + margin: 0; + border: 1px solid rgba(91, 70, 52, 0.55); + border-radius: 6px; + background: rgba(255, 255, 255, 0.65); + color: #221b18; + padding: 0.45rem 0.55rem; +} + +.dnc-sheet input, +.dnc-sheet select, +.dnc-sheet textarea, +.dnc-dialog-form input, +.dnc-dialog-form select { + width: 100%; + border: 1px solid fade(@color-border, 55%); + border-radius: @radius-sm; + background: rgba(255, 255, 255, 0.9); + color: @color-ink; + padding: 0.45rem 0.55rem; +} + +.dnc-sheet textarea { + resize: vertical; + min-height: 4.5rem; +} + +.sheet-columns { + display: grid; + grid-template-columns: minmax(250px, 320px) 1fr; + gap: @spacing-lg; +} + +.sheet-sections { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: @spacing-lg; +} + +.compact-sections { + grid-template-columns: 1fr; +} diff --git a/less/chat.less b/less/chat.less new file mode 100644 index 0000000..677814d --- /dev/null +++ b/less/chat.less @@ -0,0 +1,465 @@ +.dnc-chat-card { + position: relative; + border: 2px solid @color-border; + border-radius: 16px; + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.78) 0%, rgba(245, 234, 210, 0.92) 100%), + linear-gradient(135deg, #fdf6e7 0%, #e7d2ab 100%); + color: @color-ink; + padding: @spacing-lg; + box-shadow: 0 12px 30px fade(@color-shadow, 18%), inset 0 1px 0 rgba(255, 255, 255, 0.65); + overflow: hidden; +} + +.chat-message .message-content .dnc-chat-card h2 { + margin: 0 !important; + font-size: 0.82rem !important; + line-height: 1.1 !important; + letter-spacing: 0.02em !important; +} + +.dnc-chat-card::before { + content: ""; + position: absolute; + inset: 0; + border-radius: inherit; + pointer-events: none; + background: + radial-gradient(circle at top right, rgba(255, 255, 255, 0.45), transparent 30%), + linear-gradient(90deg, fade(@color-accent, 14%) 0, fade(@color-accent, 14%) 0.3rem, transparent 0.3rem); +} + +.chat-card-header { + position: relative; + z-index: 1; + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: @spacing-md; + margin-bottom: @spacing-md; +} + +.chat-card-heading { + min-width: 0; +} + +.chat-card-kicker { + margin: 0 0 0.25rem; + font-size: 0.7rem; + font-weight: 700; + letter-spacing: 0.16em; + text-transform: uppercase; + color: fade(@color-accent, 80%); +} + +.chat-card-subtitle { + margin: 0.2rem 0 0; + color: @color-muted; +} + +.chat-card-seal, +.chat-card-total { + position: relative; + z-index: 1; + flex: 0 0 auto; +} + +.chat-card-seal { + min-width: 3.4rem; + border-radius: 999px; + border: 1px solid fade(@color-border, 55%); + background: rgba(255, 255, 255, 0.72); + padding: 0.4rem 0.7rem; + text-align: center; + font-size: 0.72rem; + font-weight: 800; + letter-spacing: 0.12em; +} + +.chat-card-seal.success { + color: darken(@color-success, 18%); +} + +.chat-card-seal.failure { + color: darken(@color-failure, 12%); +} + +.chat-card-total { + min-width: 5.75rem; + border-radius: 14px; + border: 1px solid fade(@color-border, 45%); + background: linear-gradient(180deg, rgba(255, 255, 255, 0.82) 0%, rgba(247, 232, 198, 0.95) 100%); + padding: 0.45rem 0.8rem; + text-align: center; +} + +.chat-card-total span { + display: block; + font-size: 0.68rem; + font-weight: 700; + letter-spacing: 0.14em; + text-transform: uppercase; + color: @color-muted; +} + +.chat-card-total strong { + display: block; + margin-top: 0.15rem; + font-size: 1.8rem; + line-height: 1; + color: @color-accent; +} + +.chat-pill-row { + position: relative; + z-index: 1; + display: flex; + flex-wrap: wrap; + gap: @spacing-sm; + margin-bottom: @spacing-md; +} + +.chat-pill { + border: 1px solid fade(@color-border, 55%); + border-radius: 999px; + background: rgba(255, 255, 255, 0.66); + color: @color-ink; + font-size: 0.78rem; + font-weight: 700; + padding: 0.2rem 0.7rem; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55); +} + +.chat-pill.success { + background: fade(@color-success, 16%); + color: darken(@color-success, 18%); + border-color: fade(@color-success, 32%); +} + +.chat-pill.failure { + background: fade(@color-failure, 16%); + color: darken(@color-failure, 12%); + border-color: fade(@color-failure, 32%); +} + +.chat-keyline { + position: relative; + z-index: 1; + display: flex; + flex-wrap: wrap; + align-items: center; + gap: @spacing-sm; + margin-bottom: @spacing-md; +} + +.chat-keyline-label { + font-size: 0.72rem; + font-weight: 700; + letter-spacing: 0.12em; + text-transform: uppercase; + color: @color-muted; +} + +.roll-values { + display: flex; + gap: @spacing-sm; + flex-wrap: wrap; + margin: 0; +} + +.roll-values span { + border: 1px solid fade(@color-border, 45%); + border-radius: 999px; + background: rgba(255, 255, 255, 0.72); + padding: 0.22rem 0.55rem; + font-weight: 700; +} + +.chat-details { + position: relative; + z-index: 1; + margin: @spacing-md 0 0; + padding-left: 1.1rem; +} + +.chat-details-ornate { + margin-top: @spacing-lg; + padding-top: @spacing-md; + border-top: 1px solid fade(@color-border, 35%); +} + +.chat-details li + li { + margin-top: 0.25rem; +} + +.chat-actions { + position: relative; + z-index: 1; + margin-top: @spacing-md; +} + +.chat-action-button { + border: 1px solid @color-border; + border-radius: 999px; + background: linear-gradient(180deg, #f9f0da 0%, #dcb772 100%); + color: @color-ink; + min-height: 2rem; + padding: 0.45rem 0.9rem; + font-weight: 800; + letter-spacing: 0.04em; + box-shadow: 0 6px 14px fade(@color-shadow, 16%); +} + +.chat-action-button[disabled] { + opacity: 0.55; + cursor: not-allowed; + box-shadow: none; +} + +.chat-actions-inline { + display: flex; + flex-wrap: wrap; + gap: @spacing-sm; +} + +.chat-targeting { + position: relative; + z-index: 1; + display: grid; + gap: @spacing-sm; + margin-top: @spacing-sm; +} + +.chat-control { + display: grid; + gap: 0.2rem; +} + +.chat-select { + min-height: 2rem; + border: 1px solid fade(@color-border, 55%); + border-radius: 999px; + background: rgba(255, 255, 255, 0.82); + color: @color-ink; + padding: 0.3rem 0.75rem; +} + +.chat-formula, +.chat-note { + position: relative; + z-index: 1; + margin: 0 0 @spacing-md; +} + +.chat-formula { + display: inline-flex; + align-items: center; + min-height: 2rem; + padding: 0.25rem 0.7rem; + border-radius: 999px; + border: 1px solid fade(@color-border, 38%); + background: rgba(255, 255, 255, 0.5); + font-family: @font-display; + color: @color-muted; +} + +.chat-item-image { + width: 64px; + height: 64px; + object-fit: cover; + border-radius: @radius-sm; + border: 1px solid @color-border; +} + +.chat-item-body { + position: relative; + z-index: 1; + display: grid; + grid-template-columns: 64px 1fr; + gap: @spacing-md; + align-items: start; + margin-bottom: @spacing-md; +} + +.chat-item-content { + min-width: 0; +} + +.chat-description { + position: relative; + z-index: 1; + margin-top: @spacing-md; + padding-top: @spacing-md; + border-top: 1px solid fade(@color-border, 35%); +} + +.warning { + color: @color-failure; + font-weight: 700; +} + +.dnc-chat-card-roll { + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.78) 0%, rgba(236, 228, 205, 0.92) 100%), + linear-gradient(135deg, #fcf8ee 0%, #e4d1af 100%); +} + +.dnc-chat-card-damage { + padding: @spacing-md; + background: + linear-gradient(180deg, rgba(255, 252, 247, 0.76) 0%, rgba(238, 213, 194, 0.92) 100%), + linear-gradient(135deg, #fff4e8 0%, #d7a884 100%); +} + +.dnc-chat-card-damage .chat-card-header, +.dnc-chat-card-damage .chat-pill-row, +.dnc-chat-card-damage .chat-keyline, +.dnc-chat-card-damage .chat-formula, +.dnc-chat-card-damage .chat-note { + margin-bottom: @spacing-sm; +} + +.dnc-chat-card-damage .chat-card-total { + min-width: 4.8rem; + padding: 0.35rem 0.65rem; +} + +.dnc-chat-card-damage .chat-card-total strong { + font-size: 1.45rem; +} + +.dnc-chat-card-damage .chat-formula { + min-height: 1.7rem; + padding: 0.15rem 0.6rem; + font-size: 0.82rem; +} + +.dnc-chat-card-damage .chat-note { + font-size: 0.82rem; +} + +.dnc-chat-card-damage-application .chat-pill.success { + background: fade(@color-success, 18%); +} + +.dnc-chat-card-usage { + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.76) 0%, rgba(222, 230, 214, 0.92) 100%), + linear-gradient(135deg, #f6f6ef 0%, #bfcbb1 100%); +} + +.dnc-chat-card-item { + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.8) 0%, rgba(223, 216, 201, 0.92) 100%), + linear-gradient(135deg, #fef9ef 0%, #d1c4aa 100%); +} + +.dnc-chat-card-initiative { + background: + linear-gradient(180deg, rgba(255, 248, 236, 0.82) 0%, rgba(228, 208, 170, 0.94) 100%), + linear-gradient(135deg, #fff8ec 0%, #d7bf85 100%); +} + +.dnc-chat-card-spell { + background: + linear-gradient(180deg, rgba(249, 246, 255, 0.8) 0%, rgba(222, 213, 244, 0.92) 100%), + linear-gradient(135deg, #fcf8ff 0%, #b8abd9 100%); +} + +.dnc-chat-card-chaos { + background: + linear-gradient(180deg, rgba(255, 247, 247, 0.82) 0%, rgba(232, 198, 198, 0.94) 100%), + linear-gradient(135deg, #fff6f2 0%, #d49494 100%); +} + +.dnc-chat-card-favor { + background: + linear-gradient(180deg, rgba(248, 251, 255, 0.8) 0%, rgba(205, 220, 238, 0.94) 100%), + linear-gradient(135deg, #f7fbff 0%, #9fb8d7 100%); +} + +.dnc-chat-card-spell .chat-actions + .chat-actions { + margin-top: @spacing-sm; +} + +.chat-chaos-result { + position: relative; + z-index: 1; + margin-bottom: @spacing-md; + padding: @spacing-sm @spacing-md; + border-radius: @radius-sm; + background: rgba(255, 255, 255, 0.45); + border: 1px solid fade(@color-border, 35%); +} + +.chat-chaos-result-title { + margin: 0 0 0.25rem; + font-weight: 800; +} + +.initiative-header { + margin-bottom: @spacing-lg; +} + +.initiative-header p { + margin: 0.15rem 0 0; + color: @color-muted; +} + +.initiative-total { + min-width: 5.5rem; + border: 2px solid fade(@color-accent, 65%); + border-radius: @radius-md; + background: rgba(255, 255, 255, 0.5); + padding: 0.45rem 0.75rem; + text-align: center; +} + +.initiative-total-label, +.initiative-part-label { + display: block; + font-size: 0.72rem; + letter-spacing: 0.04em; + text-transform: uppercase; + color: @color-muted; +} + +.initiative-total strong { + display: block; + font-size: 1.8rem; + line-height: 1; + color: @color-accent; +} + +.initiative-breakdown { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: @spacing-sm; + margin-bottom: @spacing-md; +} + +.initiative-part { + min-width: 4.5rem; + border-radius: @radius-sm; + background: rgba(255, 255, 255, 0.55); + border: 1px solid fade(@color-border, 40%); + padding: 0.35rem 0.55rem; + text-align: center; +} + +.initiative-part strong, +.initiative-operator { + font-size: 1.1rem; + font-weight: 700; +} + +.initiative-formula { + margin: 0 0 @spacing-md; + font-family: @font-display; + color: @color-muted; +} + +.initiative-sync p { + margin: @spacing-sm 0 0; +} diff --git a/less/components.less b/less/components.less new file mode 100644 index 0000000..f64f92a --- /dev/null +++ b/less/components.less @@ -0,0 +1,49 @@ +.counter-field { + display: flex; + align-items: center; + gap: @spacing-sm; +} + +.counter-field button, +.item-actions button, +.sheet-footer button, +.text-button, +.roll-button { + border: 1px solid @color-border; + border-radius: @radius-sm; + background: linear-gradient(180deg, #fdf9f2 0%, #e8d5ba 100%); + color: @color-ink; + min-height: 2rem; + padding: 0.35rem 0.65rem; +} + +.text-button { + white-space: nowrap; +} + +.roll-button { + width: 2rem; + padding: 0; +} + +.with-controls { + gap: @spacing-sm; +} + +.section-header { + display: flex; + justify-content: space-between; + align-items: center; + gap: @spacing-md; + margin-bottom: @spacing-md; +} + +.empty-state { + margin: 0; + color: @color-muted; + font-style: italic; +} + +.span-two { + grid-column: span 2; +} diff --git a/less/dialogs.less b/less/dialogs.less new file mode 100644 index 0000000..02c9fc1 --- /dev/null +++ b/less/dialogs.less @@ -0,0 +1,36 @@ +.dnc-dialog-form { + display: flex; + flex-direction: column; + gap: @spacing-md; +} + +.dnc-roll-dialog, +.dnc-roll-dialog .window-content, +.dnc-dialog-form, +.dnc-dialog-form p, +.dnc-dialog-form label, +.dnc-dialog-form label > span { + color: @color-ink; +} + +.dnc-dialog-form p { + margin: 0; +} + +.dnc-dialog-form label { + display: flex; + flex-direction: column; + gap: @spacing-sm; + font-weight: 700; +} + +.dnc-dialog-form label > span { + font-size: 0.82rem; + font-weight: 700; + letter-spacing: 0.04em; + text-transform: uppercase; +} + +.dnc-roll-dialog .window-content { + background: linear-gradient(180deg, #f7efe0 0%, #e3d0b1 100%); +} diff --git a/less/donjon-et-cie.less b/less/donjon-et-cie.less new file mode 100644 index 0000000..62ac9e3 --- /dev/null +++ b/less/donjon-et-cie.less @@ -0,0 +1,7 @@ +@import "variables"; +@import "base"; +@import "components"; +@import "actor-sheet"; +@import "item-sheet"; +@import "dialogs"; +@import "chat"; diff --git a/less/item-sheet.less b/less/item-sheet.less new file mode 100644 index 0000000..3994863 --- /dev/null +++ b/less/item-sheet.less @@ -0,0 +1,33 @@ +.application.fvtt-donjon-et-cie.item { + display: flex !important; + flex-direction: column; + padding-top: 0 !important; +} + +.application.fvtt-donjon-et-cie.item > .window-header { + position: relative; + z-index: 2; + width: 100% !important; + flex: 0 0 auto; +} + +.application.fvtt-donjon-et-cie.item > .window-content { + width: 100% !important; + flex: 1 1 auto; + overflow-y: auto !important; + overflow-x: hidden !important; +} + +.application.fvtt-donjon-et-cie.item > .window-content > .dnc-sheet { + min-height: fit-content; +} + +.dnc-item-sheet .identity-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.sheet-footer { + display: flex; + gap: @spacing-md; + justify-content: flex-end; +} diff --git a/less/variables.less b/less/variables.less new file mode 100644 index 0000000..0e5c044 --- /dev/null +++ b/less/variables.less @@ -0,0 +1,27 @@ +@font-face { + font-family: "IM Fell English SC"; + src: url("../assets/fonts/im-fell-english-sc.ttf") format("truetype"); + font-weight: 400; + font-style: normal; + font-display: swap; +} + +@font-body: "Signika", sans-serif; +@font-display: "IM Fell English SC", "Palatino Linotype", "Book Antiqua", Palatino, serif; + +@color-ink: #221b18; +@color-muted: #6d5a4f; +@color-border: #5b4634; +@color-panel: #f1e5d0; +@color-panel-strong: #e2d0b1; +@color-panel-dark: #32261c; +@color-accent: #8b2e17; +@color-success: #2e6b3a; +@color-failure: #842c2c; +@color-shadow: rgba(0, 0, 0, 0.22); + +@spacing-sm: 0.4rem; +@spacing-md: 0.75rem; +@spacing-lg: 1rem; +@radius-sm: 6px; +@radius-md: 10px; diff --git a/modules/applications/donjon-et-cie-roll-dialog.mjs b/modules/applications/donjon-et-cie-roll-dialog.mjs new file mode 100644 index 0000000..da972f8 --- /dev/null +++ b/modules/applications/donjon-et-cie-roll-dialog.mjs @@ -0,0 +1,223 @@ +import { DonjonEtCieRolls } from "../donjon-et-cie-rolls.mjs"; +import { DonjonEtCieUtility } from "../donjon-et-cie-utility.mjs"; + +export class DonjonEtCieRollDialog { + static async createInitiative(actor) { + const content = await foundry.applications.handlebars.renderTemplate( + "systems/fvtt-donjon-et-cie/templates/dialogs/initiative-roll.hbs", + { + actorName: actor.name, + dex: actor.system.caracteristiques?.dexterite?.value ?? 0, + initiativeBonus: actor.system.combat?.initiativeBonus ?? 0 + } + ); + + return foundry.applications.api.DialogV2.wait({ + window: { title: game.i18n.localize("DNC.Roll.Initiative"), icon: "fa-solid fa-bolt" }, + classes: ["dnc-roll-dialog"], + content, + modal: false, + buttons: [ + { + action: "roll", + label: "Lancer", + icon: "fa-solid fa-bolt", + default: true, + callback: async (event, button) => { + const form = button.form.elements; + return DonjonEtCieRolls.rollInitiative(actor, { + mode: form.mode?.value ?? "normal" + }); + } + } + ], + rejectClose: false + }); + } + + static async createCharacteristic(actor, characteristicKey) { + const characteristic = actor.system.caracteristiques?.[characteristicKey]; + if (!characteristic) return; + + const content = await foundry.applications.handlebars.renderTemplate( + "systems/fvtt-donjon-et-cie/templates/dialogs/characteristic-roll.hbs", + { + actorName: actor.name, + characteristic, + characteristicKey, + favorOptions: DonjonEtCieUtility.getAvailableFavorOptions(actor), + hasFavorOptions: DonjonEtCieUtility.getAvailableFavorOptions(actor).length > 0 + } + ); + + return foundry.applications.api.DialogV2.wait({ + window: { title: game.i18n.localize("DNC.Roll.Characteristic"), icon: "fa-solid fa-dice-d20" }, + classes: ["dnc-roll-dialog"], + content, + modal: false, + buttons: [ + { + action: "roll", + label: "Lancer", + icon: "fa-solid fa-dice-d20", + default: true, + callback: async (event, button) => { + const form = button.form.elements; + return DonjonEtCieRolls.rollCharacteristic(actor, characteristicKey, { + mode: form.mode?.value ?? "normal", + favorKey: form.favorDepartment?.value ?? "" + }); + } + } + ], + rejectClose: false + }); + } + + static async createWeapon(actor, item) { + const content = await foundry.applications.handlebars.renderTemplate( + "systems/fvtt-donjon-et-cie/templates/dialogs/weapon-roll.hbs", + { + actorName: actor.name, + item, + characteristicLabel: DonjonEtCieUtility.getWeaponCharacteristicLabel(item.system.categorie), + characteristicValue: actor.system.caracteristiques?.[DonjonEtCieUtility.getWeaponCharacteristicKey(item.system.categorie)]?.value ?? 0, + favorOptions: DonjonEtCieUtility.getAvailableFavorOptions(actor), + hasFavorOptions: DonjonEtCieUtility.getAvailableFavorOptions(actor).length > 0 + } + ); + + return foundry.applications.api.DialogV2.wait({ + window: { title: game.i18n.localize("DNC.Roll.Attack"), icon: "fa-solid fa-sword" }, + classes: ["dnc-roll-dialog"], + content, + modal: false, + buttons: [ + { + action: "roll", + label: "Attaquer", + icon: "fa-solid fa-sword", + default: true, + callback: async (event, button) => { + const form = button.form.elements; + return DonjonEtCieRolls.rollWeapon(actor, item, { + mode: form.mode?.value ?? "normal", + favorKey: form.favorDepartment?.value ?? "" + }); + } + } + ], + rejectClose: false + }); + } + + static async createSpell(actor, item) { + const characteristicKey = item.system.caracteristique || "intelligence"; + const characteristic = actor.system.caracteristiques?.[characteristicKey]; + const magicResources = DonjonEtCieUtility.getMagicResourceContext(actor); + const content = await foundry.applications.handlebars.renderTemplate( + "systems/fvtt-donjon-et-cie/templates/dialogs/spell-roll.hbs", + { + actorName: actor.name, + item, + characteristic, + rank: magicResources.rank, + currentPv: actor.system.sante?.pv?.value ?? 0, + focusLabel: magicResources.focusLabel, + focusDisplay: magicResources.focusDisplay, + focusIsActive: magicResources.focusIsActive, + chaosLabel: magicResources.chaosLabel, + autoDisadvantage: Number(item.system.coutPv ?? 0) > magicResources.rank, + favorOptions: DonjonEtCieUtility.getAvailableFavorOptions(actor), + hasFavorOptions: DonjonEtCieUtility.getAvailableFavorOptions(actor).length > 0 + } + ); + + return foundry.applications.api.DialogV2.wait({ + window: { title: game.i18n.localize("DNC.Roll.Spell"), icon: "fa-solid fa-wand-magic-sparkles" }, + classes: ["dnc-roll-dialog"], + content, + modal: false, + buttons: [ + { + action: "roll", + label: "Lancer", + icon: "fa-solid fa-wand-magic-sparkles", + default: true, + callback: async (event, button) => { + const form = button.form.elements; + return DonjonEtCieRolls.rollSpell(actor, item, { + mode: form.mode?.value ?? "normal", + favorKey: form.favorDepartment?.value ?? "" + }); + } + } + ], + rejectClose: false + }); + } + + static async createUsage(item) { + const content = await foundry.applications.handlebars.renderTemplate( + "systems/fvtt-donjon-et-cie/templates/dialogs/usage-roll.hbs", + { + item + } + ); + + return foundry.applications.api.DialogV2.wait({ + window: { title: game.i18n.localize("DNC.Roll.Usage"), icon: "fa-solid fa-hourglass-half" }, + classes: ["dnc-roll-dialog"], + content, + modal: false, + buttons: [ + { + action: "roll", + label: "Utiliser", + icon: "fa-solid fa-hourglass-half", + default: true, + callback: async (event, button) => { + const form = button.form.elements; + return DonjonEtCieRolls.rollUsage(item, { + mode: form.mode?.value ?? "normal" + }); + } + } + ], + rejectClose: false + }); + } + + static async createDamage(actor, item) { + const content = await foundry.applications.handlebars.renderTemplate( + "systems/fvtt-donjon-et-cie/templates/dialogs/damage-roll.hbs", + { + actorName: actor?.name ?? item.actor?.name ?? "", + item, + actorBonus: actor?.system?.combat?.degatsBonus ?? 0 + } + ); + + return foundry.applications.api.DialogV2.wait({ + window: { title: game.i18n.localize("DNC.Roll.Damage"), icon: "fa-solid fa-burst" }, + classes: ["dnc-roll-dialog"], + content, + modal: false, + buttons: [ + { + action: "roll", + label: "Lancer", + icon: "fa-solid fa-burst", + default: true, + callback: async (event, button) => { + const form = button.form.elements; + return DonjonEtCieRolls.rollDamage(actor, item, { + mode: form.mode?.value ?? "normal" + }); + } + } + ], + rejectClose: false + }); + } +} diff --git a/modules/applications/sheets/_module.mjs b/modules/applications/sheets/_module.mjs new file mode 100644 index 0000000..f97fe7b --- /dev/null +++ b/modules/applications/sheets/_module.mjs @@ -0,0 +1,3 @@ +export { default as DonjonEtCieItemSheet } from "./base-item-sheet.mjs"; +export { default as DonjonEtCieEmployeSheet } from "./donjon-et-cie-employe-sheet.mjs"; +export { default as DonjonEtCiePNJSheet } from "./donjon-et-cie-pnj-sheet.mjs"; diff --git a/modules/applications/sheets/base-actor-sheet.mjs b/modules/applications/sheets/base-actor-sheet.mjs new file mode 100644 index 0000000..4da3bce --- /dev/null +++ b/modules/applications/sheets/base-actor-sheet.mjs @@ -0,0 +1,225 @@ +const { HandlebarsApplicationMixin } = foundry.applications.api; + +export default class DonjonEtCieActorSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ActorSheetV2) { + static DEFAULT_OPTIONS = { + classes: ["fvtt-donjon-et-cie", "sheet", "actor"], + position: { width: 920, height: 820 }, + form: { + submitOnChange: true, + closeOnSubmit: false + }, + window: { + resizable: true + }, + dragDrop: [{ dragSelector: ".item-list .item", dropSelector: ".item-dropzone" }], + actions: { + editImage: DonjonEtCieActorSheet.#onEditImage, + setTab: DonjonEtCieActorSheet.#onSetTab, + createItem: DonjonEtCieActorSheet.#onCreateItem, + editItem: DonjonEtCieActorSheet.#onEditItem, + deleteItem: DonjonEtCieActorSheet.#onDeleteItem, + rollHitDice: DonjonEtCieActorSheet.#onRollHitDice, + rollInitiative: DonjonEtCieActorSheet.#onRollInitiative, + rollCharacteristic: DonjonEtCieActorSheet.#onRollCharacteristic, + rollWeapon: DonjonEtCieActorSheet.#onRollWeapon, + rollDamage: DonjonEtCieActorSheet.#onRollDamage, + rollSpell: DonjonEtCieActorSheet.#onRollSpell, + rollUsage: DonjonEtCieActorSheet.#onRollUsage, + useFavorService: DonjonEtCieActorSheet.#onUseFavorService, + postItem: DonjonEtCieActorSheet.#onPostItem, + adjustCounter: DonjonEtCieActorSheet.#onAdjustCounter + } + }; + + async _prepareContext() { + const actor = this.document; + return { + actor, + system: actor.system, + source: actor.toObject(), + config: game.system.donjonEtCie.config, + characteristics: actor.getCharacteristicEntries(), + sections: actor.getSectionData(), + fields: actor.schema.fields, + systemFields: actor.system.schema.fields, + activeTab: this._activeTab ?? "combat" + }; + } + + _onRender(context, options) { + super._onRender(context, options); + this.#fixWindowShell(); + this._applyActiveTab(); + } + + #fixWindowShell() { + const app = this.element?.matches?.(".application") ? this.element : this.element?.closest(".application"); + const content = app?.querySelector(":scope > .window-content") ?? app?.querySelector(".window-content"); + const header = app?.querySelector(".window-header"); + + if (app) { + app.style.display = "flex"; + app.style.flexDirection = "column"; + app.style.paddingTop = "0"; + app.style.overflow = "hidden"; + } + + if (header) { + header.style.width = "100%"; + header.style.flex = "0 0 auto"; + header.style.position = "relative"; + header.style.zIndex = "3"; + } + + if (content) { + content.style.width = "100%"; + content.style.flex = "1 1 auto"; + content.style.minHeight = "0"; + content.style.overflowY = "auto"; + content.style.overflowX = "hidden"; + } + } + + _canDragStart() { + return this.isEditable; + } + + _canDragDrop() { + return this.isEditable; + } + + _onDragStart(event) { + const itemElement = event.currentTarget.closest(".item"); + if (!itemElement) return; + + const itemId = itemElement.dataset.itemId; + const item = this.document.items.get(itemId); + if (!item) return; + + event.dataTransfer.setData("text/plain", JSON.stringify({ type: "Item", uuid: item.uuid })); + } + + _onDragOver(event) { + const dropTarget = event.target.closest(".item-section"); + this.#setDropTarget(dropTarget); + } + + async _onDrop(event) { + this.#setDropTarget(null); + return super._onDrop(event); + } + + #setDropTarget(target) { + this.element.querySelectorAll(".item-section.is-dragover").forEach((section) => section.classList.remove("is-dragover")); + if (target instanceof HTMLElement) { + target.classList.add("is-dragover"); + } + } + + _applyActiveTab() { + const activeTab = this._activeTab ?? "combat"; + this.element.querySelectorAll("[data-tab-button]").forEach((button) => { + const isActive = button.dataset.tab === activeTab; + button.classList.toggle("active", isActive); + button.setAttribute("aria-pressed", isActive ? "true" : "false"); + }); + + this.element.querySelectorAll("[data-tab-panel]").forEach((panel) => { + const isActive = panel.dataset.tabPanel === activeTab; + panel.classList.toggle("active", isActive); + panel.toggleAttribute("hidden", !isActive); + }); + } + + static async #onEditImage(event) { + event.preventDefault(); + const picker = new FilePicker({ + type: "image", + current: this.document.img, + callback: (path) => this.document.update({ img: path }) + }); + return picker.browse(); + } + + static async #onCreateItem(event, target) { + event.preventDefault(); + const type = target.dataset.type; + if (!type) return; + return this.document.createEmbeddedDocuments("Item", [{ name: `Nouveau ${type}`, type }], { renderSheet: true }); + } + + static async #onSetTab(event, target) { + event.preventDefault(); + const tab = target.dataset.tab; + if (!tab) return; + this._activeTab = tab; + this._applyActiveTab(); + } + + static async #onEditItem(event, target) { + event.preventDefault(); + const item = this.document.items.get(target.closest("[data-item-id]")?.dataset.itemId); + return item?.sheet.render(true); + } + + static async #onDeleteItem(event, target) { + event.preventDefault(); + const itemId = target.closest("[data-item-id]")?.dataset.itemId; + if (!itemId) return; + return this.document.deleteEmbeddedDocuments("Item", [itemId]); + } + + static async #onRollCharacteristic(event, target) { + event.preventDefault(); + return this.document.rollCharacteristic(target.dataset.characteristic); + } + + static async #onRollInitiative(event) { + event.preventDefault(); + return this.document.rollInitiative(); + } + + static async #onRollHitDice(event) { + event.preventDefault(); + return this.document.rollHitDice(); + } + + static async #onRollWeapon(event, target) { + event.preventDefault(); + return this.document.rollWeapon(target.closest("[data-item-id]")?.dataset.itemId); + } + + static async #onRollDamage(event, target) { + event.preventDefault(); + return this.document.rollDamage(target.closest("[data-item-id]")?.dataset.itemId); + } + + static async #onRollSpell(event, target) { + event.preventDefault(); + return this.document.rollSpell(target.closest("[data-item-id]")?.dataset.itemId); + } + + static async #onRollUsage(event, target) { + event.preventDefault(); + return this.document.rollUsage(target.closest("[data-item-id]")?.dataset.itemId); + } + + static async #onUseFavorService(event, target) { + event.preventDefault(); + return this.document.useFavorService(target.dataset.department); + } + + static async #onPostItem(event, target) { + event.preventDefault(); + const item = this.document.items.get(target.closest("[data-item-id]")?.dataset.itemId); + return item?.postToChat(); + } + + static async #onAdjustCounter(event, target) { + event.preventDefault(); + const path = target.dataset.path; + const delta = Number(target.dataset.delta ?? 0); + if (!path || Number.isNaN(delta)) return; + return this.document.adjustNumericField(path, delta); + } +} diff --git a/modules/applications/sheets/base-item-sheet.mjs b/modules/applications/sheets/base-item-sheet.mjs new file mode 100644 index 0000000..34cdd25 --- /dev/null +++ b/modules/applications/sheets/base-item-sheet.mjs @@ -0,0 +1,110 @@ +import { DonjonEtCieUtility } from "../../donjon-et-cie-utility.mjs"; + +const { HandlebarsApplicationMixin } = foundry.applications.api; + +export default class DonjonEtCieItemSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ItemSheetV2) { + static DEFAULT_OPTIONS = { + classes: ["fvtt-donjon-et-cie", "sheet", "item"], + position: { width: 640, height: 700 }, + form: { + submitOnChange: true, + closeOnSubmit: false + }, + window: { + resizable: true + }, + actions: { + editImage: DonjonEtCieItemSheet.#onEditImage, + postItem: DonjonEtCieItemSheet.#onPostItem, + rollItem: DonjonEtCieItemSheet.#onRollItem, + rollDamageItem: DonjonEtCieItemSheet.#onRollDamageItem + } + }; + + static PARTS = { + main: { template: "systems/fvtt-donjon-et-cie/templates/items/item-sheet.hbs" } + }; + + async _prepareContext() { + const item = this.document; + return { + item, + system: item.system, + source: item.toObject(), + config: game.system.donjonEtCie.config, + fields: item.schema.fields, + systemFields: item.system.schema.fields, + isWeapon: item.type === "arme", + isArmor: item.type === "armure", + isConsumable: item.type === "consommable", + isSpell: item.type === "sortilege", + canRollDamage: Boolean(item.system.degats), + isEquipment: item.type === "equipement", + isCapacity: item.type === "capacite", + isLanguage: item.type === "langue", + isTrait: item.type === "trait", + armorProtectionDisplay: Number(item.system.resultatProtection ?? 0) > 0 ? item.system.resultatProtection : "—", + weaponCharacteristicLabel: item.type === "arme" ? DonjonEtCieUtility.getWeaponCharacteristicLabel(item.system.categorie) : null, + enrichedDescription: await foundry.applications.ux.TextEditor.implementation.enrichHTML(item.system.description ?? "", { async: true }), + enrichedNotes: await foundry.applications.ux.TextEditor.implementation.enrichHTML(item.system.notes ?? "", { async: true }) + }; + } + + _onRender(context, options) { + super._onRender(context, options); + this.#fixWindowShell(); + } + + #fixWindowShell() { + const content = this.element?.closest(".window-content") ?? this.element?.parentElement; + const app = content?.closest(".application") ?? this.element?.closest(".application"); + const header = app?.querySelector(".window-header"); + + if (app) { + app.style.display = "flex"; + app.style.flexDirection = "column"; + app.style.paddingTop = "0"; + app.style.overflow = "hidden"; + } + + if (header) { + header.style.width = "100%"; + header.style.flex = "0 0 auto"; + header.style.position = "relative"; + header.style.zIndex = "3"; + } + + if (content) { + content.style.width = "100%"; + content.style.flex = "1 1 auto"; + content.style.minHeight = "0"; + content.style.overflowY = "auto"; + content.style.overflowX = "hidden"; + } + } + + static async #onEditImage(event) { + event.preventDefault(); + const picker = new FilePicker({ + type: "image", + current: this.document.img, + callback: (path) => this.document.update({ img: path }) + }); + return picker.browse(); + } + + static async #onPostItem(event) { + event.preventDefault(); + return this.document.postToChat(); + } + + static async #onRollItem(event) { + event.preventDefault(); + return this.document.roll(); + } + + static async #onRollDamageItem(event) { + event.preventDefault(); + return this.document.rollDamage(); + } +} diff --git a/modules/applications/sheets/donjon-et-cie-employe-sheet.mjs b/modules/applications/sheets/donjon-et-cie-employe-sheet.mjs new file mode 100644 index 0000000..c91c0fe --- /dev/null +++ b/modules/applications/sheets/donjon-et-cie-employe-sheet.mjs @@ -0,0 +1,37 @@ +import DonjonEtCieActorSheet from "./base-actor-sheet.mjs"; +import { DonjonEtCieUtility } from "../../donjon-et-cie-utility.mjs"; + +export default class DonjonEtCieEmployeSheet extends DonjonEtCieActorSheet { + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "employe"], + position: { width: 980, height: 860 } + }; + + static PARTS = { + main: { template: "systems/fvtt-donjon-et-cie/templates/actors/employe-sheet.hbs" } + }; + + async _prepareContext() { + const context = await super._prepareContext(); + const indexedSections = Object.fromEntries(context.sections.map((section) => [section.key, section])); + const getSection = (key) => indexedSections[key] ?? { + key, + label: context.config.actorSections[key]?.label ?? key, + createType: context.config.actorSections[key]?.createType ?? key, + items: [] + }; + + return { + ...context, + magicResources: DonjonEtCieUtility.getMagicResourceContext(this.document), + favorEntries: this.document.getFavorEntries(), + chaosTable: DonjonEtCieUtility.getChaosTableEntries(), + traitsSection: getSection("traits"), + combatSections: ["armes", "armures", "consommables", "equipements"].map(getSection), + spellSection: getSection("sortileges"), + capacitySection: getSection("capacites"), + profileSections: ["langues"].map(getSection) + }; + } +} diff --git a/modules/applications/sheets/donjon-et-cie-pnj-sheet.mjs b/modules/applications/sheets/donjon-et-cie-pnj-sheet.mjs new file mode 100644 index 0000000..d95143a --- /dev/null +++ b/modules/applications/sheets/donjon-et-cie-pnj-sheet.mjs @@ -0,0 +1,57 @@ +import DonjonEtCieActorSheet from "./base-actor-sheet.mjs"; +import { DonjonEtCieUtility } from "../../donjon-et-cie-utility.mjs"; + +export default class DonjonEtCiePNJSheet extends DonjonEtCieActorSheet { + static DEFAULT_OPTIONS = { + ...super.DEFAULT_OPTIONS, + classes: [...super.DEFAULT_OPTIONS.classes, "pnj"], + position: { width: 840, height: 760 }, + actions: { + ...super.DEFAULT_OPTIONS.actions, + rollPnjArmor: DonjonEtCiePNJSheet.#onRollPnjArmor, + rollPnjCourage: DonjonEtCiePNJSheet.#onRollPnjCourage, + rollPnjAttackDamage: DonjonEtCiePNJSheet.#onRollPnjAttackDamage + } + }; + + static PARTS = { + main: { template: "systems/fvtt-donjon-et-cie/templates/actors/pnj-sheet.hbs" } + }; + + async _prepareContext() { + const context = await super._prepareContext(); + const system = this.document.system; + const indexedSections = Object.fromEntries(context.sections.map((section) => [section.key, section])); + const getSection = (key) => indexedSections[key] ?? { + key, + label: context.config.actorSections[key]?.label ?? key, + createType: context.config.actorSections[key]?.createType ?? key, + items: [] + }; + + return { + ...context, + capacitySection: getSection("capacites"), + spellSection: getSection("sortileges"), + armorDisplay: Number(system.defense?.armure?.delta ?? 0) ? `Δ${system.defense.armure.delta}` : "—", + storedArmor: Number(system.defense?.armure?.resultatProtection ?? 0) > 0 ? system.defense.armure.resultatProtection : "—", + courageDisplay: Number(system.defense?.courage?.delta ?? 0) ? `Δ${system.defense.courage.delta}` : "—", + hasAttackDamage: Boolean(system.attaque?.degats) + }; + } + + static async #onRollPnjArmor(event) { + event.preventDefault(); + return this.document.rollPnjArmor(); + } + + static async #onRollPnjCourage(event) { + event.preventDefault(); + return this.document.rollPnjCourage(); + } + + static async #onRollPnjAttackDamage(event) { + event.preventDefault(); + return this.document.rollPnjAttackDamage(); + } +} diff --git a/modules/donjon-et-cie-actor.mjs b/modules/donjon-et-cie-actor.mjs new file mode 100644 index 0000000..c2db7e1 --- /dev/null +++ b/modules/donjon-et-cie-actor.mjs @@ -0,0 +1,203 @@ +import { DonjonEtCieUtility } from "./donjon-et-cie-utility.mjs"; +import { DonjonEtCieRollDialog } from "./applications/donjon-et-cie-roll-dialog.mjs"; + +export class DonjonEtCieActor extends Actor { + prepareDerivedData() { + super.prepareDerivedData(); + + const pv = this.system.sante?.pv; + if (pv && pv.value > pv.max) { + pv.max = pv.value; + } + } + + getCharacteristicEntries() { + return DonjonEtCieUtility.getCharacteristicEntries(this.system); + } + + getSectionData() { + return DonjonEtCieUtility.buildActorSections(this); + } + + getFavorEntries() { + return DonjonEtCieUtility.getFavorEntries(this.system); + } + + #getStoredArmorContext() { + if (this.type === "pnj") { + const stored = Number(this.system.defense?.armure?.resultatProtection ?? 0); + return { + label: "ARM", + hasArmor: true, + before: stored, + update: async (value) => this.update({ "system.defense.armure.resultatProtection": Math.max(0, Number(value ?? 0)) }) + }; + } + + const armors = [...this.items.filter((item) => item.type === "armure")].sort((a, b) => { + const equippedScore = Number(Boolean(b.system.equipee)) - Number(Boolean(a.system.equipee)); + if (equippedScore) return equippedScore; + + const protectionScore = Number(b.system.resultatProtection ?? 0) - Number(a.system.resultatProtection ?? 0); + if (protectionScore) return protectionScore; + + return a.name.localeCompare(b.name, "fr", { sensitivity: "base" }); + }); + + const armor = armors.find((item) => item.system.equipee || Number(item.system.resultatProtection ?? 0) > 0) ?? null; + if (!armor) { + return { + label: "Armure", + hasArmor: false, + before: 0, + update: null + }; + } + + return { + label: armor.name, + hasArmor: true, + before: Number(armor.system.resultatProtection ?? 0), + update: async (value) => armor.update({ "system.resultatProtection": Math.max(0, Number(value ?? 0)) }) + }; + } + + async adjustNumericField(path, delta) { + const current = Number(foundry.utils.getProperty(this, path) ?? 0); + let next = current + Number(delta); + + if (path === "system.sante.pv.value") { + const max = Number(this.system.sante?.pv?.max ?? next); + next = Math.max(0, Math.min(next, max)); + } else { + next = Math.max(0, next); + } + + return this.update({ [path]: next }); + } + + async applyIncomingDamage(damage, { useArmor = false } = {}) { + const incoming = Math.max(0, Number(damage ?? 0)); + const pvBefore = Number(this.system.sante?.pv?.value ?? 0); + const pvMax = Number(this.system.sante?.pv?.max ?? pvBefore); + const armor = this.#getStoredArmorContext(); + const armorBefore = useArmor ? Number(armor.before ?? 0) : 0; + const armorAbsorbed = Math.min(incoming, armorBefore); + const armorAfter = Math.max(armorBefore - armorAbsorbed, 0); + const hpDamage = Math.max(incoming - armorAbsorbed, 0); + const pvAfter = Math.max(pvBefore - hpDamage, 0); + + if (useArmor && armor.hasArmor && armor.update && armorAfter !== armorBefore) { + await armor.update(armorAfter); + } + + if (hpDamage !== 0) { + await this.update({ "system.sante.pv.value": pvAfter }); + } + + return { + incoming, + useArmor, + armorLabel: armor.label, + armorAvailable: armor.hasArmor, + armorBefore, + armorAbsorbed, + armorAfter, + hpDamage, + pvBefore, + pvAfter, + pvMax + }; + } + + async rollCharacteristic(key) { + return DonjonEtCieRollDialog.createCharacteristic(this, key); + } + + async useFavorService(departmentKey) { + return game.system.donjonEtCie.rolls.useFavorService(this, departmentKey); + } + + async rollInitiative() { + return DonjonEtCieRollDialog.createInitiative(this); + } + + async rollHitDice() { + return game.system.donjonEtCie.rolls.rollHitDice(this); + } + + async rollWeapon(itemId) { + const item = this.items.get(itemId); + if (item) return DonjonEtCieRollDialog.createWeapon(this, item); + } + + async rollDamage(itemId) { + const item = this.items.get(itemId); + if (item) return DonjonEtCieRollDialog.createDamage(this, item); + } + + async rollSpell(itemId) { + const item = this.items.get(itemId); + if (item) return DonjonEtCieRollDialog.createSpell(this, item); + } + + async rollUsage(itemId) { + const item = this.items.get(itemId); + if (item) return DonjonEtCieRollDialog.createUsage(item); + } + + #createPnjResourceProxy({ label, deltaPath, protectionPath = null }) { + const delta = Number(foundry.utils.getProperty(this, deltaPath) ?? 0); + const protection = protectionPath ? Number(foundry.utils.getProperty(this, protectionPath) ?? 0) : 0; + + return { + actor: this, + type: protectionPath ? "armure" : "ressource", + name: `${this.name} · ${label}`, + system: { + delta, + resultatProtection: protection + }, + update: async (data) => { + const updateData = {}; + if (Object.hasOwn(data, "system.delta")) { + updateData[deltaPath] = data["system.delta"]; + } + if (protectionPath && Object.hasOwn(data, "system.resultatProtection")) { + updateData[protectionPath] = data["system.resultatProtection"]; + } + return Object.keys(updateData).length ? this.update(updateData) : this; + } + }; + } + + async rollPnjArmor() { + return DonjonEtCieRollDialog.createUsage(this.#createPnjResourceProxy({ + label: "ARM", + deltaPath: "system.defense.armure.delta", + protectionPath: "system.defense.armure.resultatProtection" + })); + } + + async rollPnjCourage() { + return DonjonEtCieRollDialog.createUsage(this.#createPnjResourceProxy({ + label: "COU", + deltaPath: "system.defense.courage.delta" + })); + } + + async rollPnjAttackDamage() { + const attackName = this.system.attaque?.nom || "Attaque"; + const attackDamage = this.system.attaque?.degats || ""; + if (!attackDamage) return null; + + return DonjonEtCieRollDialog.createDamage(this, { + name: `${this.name} · ${attackName}`, + type: "attaque", + system: { + degats: attackDamage, + portee: this.system.attaque?.notes || "" + } + }); + } +} diff --git a/modules/donjon-et-cie-config.mjs b/modules/donjon-et-cie-config.mjs new file mode 100644 index 0000000..296b82c --- /dev/null +++ b/modules/donjon-et-cie-config.mjs @@ -0,0 +1,117 @@ +export const DONJON_ET_CIE = { + id: "fvtt-donjon-et-cie", + characteristics: { + force: { label: "FORce", short: "FOR" }, + dexterite: { label: "DEXterite", short: "DEX" }, + constitution: { label: "CONstitution", short: "CON" }, + intelligence: { label: "INTelligence", short: "INT" }, + sagesse: { label: "SAGesse", short: "SAG" }, + charisme: { label: "CHArisme", short: "CHA" } + }, + characteristicOptions: { + force: "FORce", + dexterite: "DEXterite", + constitution: "CONstitution", + intelligence: "INTelligence", + sagesse: "SAGesse", + charisme: "CHArisme" + }, + usageDieOptions: { + 0: "Aucun", + 4: "Δ4", + 6: "Δ6", + 8: "Δ8", + 10: "Δ10", + 12: "Δ12" + }, + favorDepartments: { + entreesSorties: "Entrees et Sorties", + relationsMecenes: "Relations Mecenes", + relationsInterieures: "Relations Interieures", + conception: "Conception", + materiel: "Materiel", + arpentage: "Arpentage", + terminaison: "Terminaison", + recrutement: "Recrutement", + reception: "Reception", + conditionnement: "Conditionnement", + supervision: "Supervision", + exploration: "Exploration", + reclame: "Reclame", + entretien: "Entretien" + }, + chaosTable: { + 1: { + title: "Erreur", + effect: "L'effet du sort est inverse ou transforme de maniere dramatique." + }, + 2: { + title: "Mutation", + effect: "La magie fonctionne, mais transforme le personnage et laisse des sequelles : deformation, cicatrice, etc." + }, + 3: { + title: "Oubli", + effect: "Le sort fonctionne, mais le personnage l'oublie et ne s'en souviendra qu'apres une bonne nuit de sommeil." + }, + 4: { + title: "Drain", + effect: "Le personnage perd un nombre de points egal au cout du sort dans une caracteristique determinee au hasard. Ces points se recuperent au rythme d'un par jour." + }, + 5: { + title: "Feu d'artifice", + effect: "Du bruit, de la lumiere, aucun effet tangible, sinon que les vetements du magicien prennent certainement feu." + }, + 6: { + title: "Pic de pouvoir", + effect: "Aucune magie ne prend effet, mais le personnage regagne les points de vie depenses pour le sort." + }, + 7: { + title: "Sort amoindri", + effect: "La zone d'effet, le nombre de cibles, les dommages, tout est divise par deux." + }, + 8: { + title: "Absence de controle", + effect: "Votre magie a un effet secondaire negatif." + }, + 9: { + title: "Fuite de pouvoir", + effect: "Le sort fonctionne mais coute le double de son cout en PV (en tout). Si le personnage tombe a 0 PV, il perd connaissance." + }, + 10: { + title: "Effet retarde", + effect: "La magie prend effet normalement... mais dans d4 tours." + }, + 11: { + title: "Mal vise", + effect: "Le sort affecte une autre cible que celle que vous visez, au choix du MJ." + }, + 12: { + title: "BAM !", + effect: "Les effets, nombre de cibles ou taille du sort sont doubles." + } + }, + weaponCategoryOptions: { + melee: "Corps a corps", + distance: "Distance" + }, + actorSections: { + traits: { label: "Traits", createType: "trait" }, + langues: { label: "Langues", createType: "langue" }, + capacites: { label: "Capacites", createType: "capacite" }, + sortileges: { label: "Sortileges", createType: "sortilege" }, + armes: { label: "Armes", createType: "arme" }, + armures: { label: "Armures", createType: "armure" }, + equipements: { label: "Equipements", createType: "equipement" }, + consommables: { label: "Consommables", createType: "consommable" } + }, + sectionTypes: { + traits: ["trait"], + langues: ["langue"], + capacites: ["capacite"], + sortileges: ["sortilege"], + armes: ["arme"], + armures: ["armure"], + equipements: ["equipement"], + consommables: ["consommable"] + } +}; diff --git a/modules/donjon-et-cie-item.mjs b/modules/donjon-et-cie-item.mjs new file mode 100644 index 0000000..b156924 --- /dev/null +++ b/modules/donjon-et-cie-item.mjs @@ -0,0 +1,45 @@ +import { DonjonEtCieRollDialog } from "./applications/donjon-et-cie-roll-dialog.mjs"; +import { DonjonEtCieUtility } from "./donjon-et-cie-utility.mjs"; + +export class DonjonEtCieItem extends Item { + async _preCreate(data, options, user) { + await super._preCreate(data, options, user); + + const currentImg = data.img ?? this.img; + if (currentImg && !currentImg.startsWith("icons/svg/")) return; + + this.updateSource({ img: DonjonEtCieUtility.getDefaultItemIcon(this.type) }); + } + + get usageDie() { + return Number(this.system.delta ?? 0); + } + + async roll() { + if (this.type === "arme") return DonjonEtCieRollDialog.createWeapon(this.actor, this); + if (this.type === "sortilege") return DonjonEtCieRollDialog.createSpell(this.actor, this); + if (this.usageDie) return DonjonEtCieRollDialog.createUsage(this); + return this.postToChat(); + } + + async rollDamage() { + if (!this.system.degats) return null; + return DonjonEtCieRollDialog.createDamage(this.actor, this); + } + + async postToChat() { + const content = await foundry.applications.handlebars.renderTemplate( + "systems/fvtt-donjon-et-cie/templates/chat/item-card.hbs", + { + item: this, + usageLabel: DonjonEtCieUtility.formatUsageDie(this.usageDie) + } + ); + + return ChatMessage.create({ + speaker: ChatMessage.getSpeaker({ actor: this.actor }), + user: game.user.id, + content + }); + } +} diff --git a/modules/donjon-et-cie-main.mjs b/modules/donjon-et-cie-main.mjs new file mode 100644 index 0000000..527eb97 --- /dev/null +++ b/modules/donjon-et-cie-main.mjs @@ -0,0 +1,103 @@ +import { DONJON_ET_CIE } from "./donjon-et-cie-config.mjs"; +import { DonjonEtCieUtility } from "./donjon-et-cie-utility.mjs"; +import { DonjonEtCieActor } from "./donjon-et-cie-actor.mjs"; +import { DonjonEtCieItem } from "./donjon-et-cie-item.mjs"; +import * as models from "./models/index.mjs"; +import * as sheets from "./applications/sheets/_module.mjs"; +import { DonjonEtCieRollDialog } from "./applications/donjon-et-cie-roll-dialog.mjs"; +import { DonjonEtCieRolls } from "./donjon-et-cie-rolls.mjs"; + +function onChatActionClick(event) { + const button = event.target.closest("[data-action='rollChatDamage'], [data-action='rollSpellChaos'], [data-action='applyDamage']"); + if (!(button instanceof HTMLElement)) return; + + event.preventDefault(); + + void (async () => { + if (button.dataset.action === "rollSpellChaos") { + const actorUuid = button.dataset.actorUuid; + const itemUuid = button.dataset.itemUuid; + if (!actorUuid || !itemUuid) return; + const [actor, item] = await Promise.all([fromUuid(actorUuid), fromUuid(itemUuid)]); + return DonjonEtCieRolls.rollSpellChaos(actor, item); + } + + if (button.dataset.action === "applyDamage") { + const card = button.closest(".dnc-chat-card-damage"); + const select = card?.querySelector("[data-role='damage-target']"); + const targetUuid = select instanceof HTMLSelectElement ? select.value : ""; + if (!targetUuid) { + ui.notifications.warn(game.i18n.localize("DNC.Chat.SelectTarget")); + return null; + } + + const target = await fromUuid(targetUuid); + if (!target) { + ui.notifications.warn(game.i18n.localize("DNC.Chat.TargetUnavailable")); + return null; + } + + return DonjonEtCieRolls.applyDamage(target, { + damage: Number(button.dataset.damage ?? 0), + useArmor: button.dataset.useArmor === "true", + sourceLabel: button.dataset.sourceLabel ?? "" + }); + } + + const itemUuid = button.dataset.itemUuid; + if (!itemUuid) return; + const item = await fromUuid(itemUuid); + return item?.rollDamage?.(); + })(); +} + +Hooks.once("init", async () => { + console.log("Initialisation du systeme Donjon & Cie"); + + await DonjonEtCieUtility.preloadHandlebarsTemplates(); + + CONFIG.Combat.initiative = { + formula: "1d20 + @system.caracteristiques.dexterite.value + @system.combat.initiativeBonus", + decimals: 0 + }; + + CONFIG.Actor.documentClass = DonjonEtCieActor; + CONFIG.Actor.dataModels = { + employe: models.EmployeDataModel, + pnj: models.PnjDataModel + }; + + CONFIG.Item.documentClass = DonjonEtCieItem; + CONFIG.Item.dataModels = { + trait: models.TraitDataModel, + langue: models.LangueDataModel, + capacite: models.CapaciteDataModel, + sortilege: models.SortilegeDataModel, + arme: models.ArmeDataModel, + armure: models.ArmureDataModel, + equipement: models.EquipementDataModel, + consommable: models.ConsommableDataModel + }; + + game.system.donjonEtCie = { + config: DONJON_ET_CIE, + models, + sheets, + rolls: DonjonEtCieRolls, + dialogs: DonjonEtCieRollDialog, + utility: DonjonEtCieUtility + }; + + foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet); + foundry.documents.collections.Actors.registerSheet("fvtt-donjon-et-cie", sheets.DonjonEtCieEmployeSheet, { types: ["employe"], makeDefault: true }); + foundry.documents.collections.Actors.registerSheet("fvtt-donjon-et-cie", sheets.DonjonEtCiePNJSheet, { types: ["pnj"], makeDefault: true }); + + foundry.documents.collections.Items.unregisterSheet("core", foundry.appv1.sheets.ItemSheet); + for (const type of ["trait", "langue", "capacite", "sortilege", "arme", "armure", "equipement", "consommable"]) { + foundry.documents.collections.Items.registerSheet("fvtt-donjon-et-cie", sheets.DonjonEtCieItemSheet, { types: [type], makeDefault: true }); + } +}); + +Hooks.once("ready", () => { + document.addEventListener("click", onChatActionClick); +}); diff --git a/modules/donjon-et-cie-rolls.mjs b/modules/donjon-et-cie-rolls.mjs new file mode 100644 index 0000000..24bc8a3 --- /dev/null +++ b/modules/donjon-et-cie-rolls.mjs @@ -0,0 +1,546 @@ +import { DonjonEtCieUtility } from "./donjon-et-cie-utility.mjs"; +import { DONJON_ET_CIE } from "./donjon-et-cie-config.mjs"; + +export class DonjonEtCieRolls { + static async #createChatCard(actor, template, context) { + const content = await foundry.applications.handlebars.renderTemplate(template, context); + await ChatMessage.create({ + speaker: ChatMessage.getSpeaker({ actor }), + user: game.user.id, + content + }); + } + + static #selectKeptValue(values, mode, favorable = "low") { + if (!values.length) return null; + if (mode === "normal") return values[0]; + + const selector = favorable === "low" + ? (mode === "avantage" ? Math.min : Math.max) + : (mode === "avantage" ? Math.max : Math.min); + + return selector(...values); + } + + static #getModeLabel(mode) { + if (mode === "avantage") return "Avantage"; + if (mode === "desavantage") return "Desavantage"; + return null; + } + + static #applyFavorMode(mode) { + if (mode === "desavantage") return "normal"; + return "avantage"; + } + + static async #resolveFormulaRoll(formula, data = {}, { mode = "normal", favorable = "high" } = {}) { + const rollCount = mode === "normal" ? 1 : 2; + const rolls = await Promise.all(Array.from({ length: rollCount }, () => (new Roll(formula, data)).evaluate())); + const values = rolls.map((roll) => roll.total); + const kept = this.#selectKeptValue(values, mode, favorable); + const keptIndex = Math.max(0, values.findIndex((value) => value === kept)); + const keptRoll = rolls[keptIndex] ?? rolls[0]; + + return { rolls, values, kept, keptIndex, keptRoll, mode, formula: keptRoll.formula }; + } + + static async #resolveCharacteristic(actor, characteristicKey, { mode = "normal" } = {}) { + const characteristic = actor.system.caracteristiques?.[characteristicKey]; + if (!characteristic) return null; + + const target = Number(characteristic.value ?? 0); + const rollCount = mode === "normal" ? 1 : 2; + const roll = await (new Roll(`${rollCount}d20`)).evaluate(); + const values = roll.dice[0]?.results?.map((result) => result.result) ?? []; + const kept = this.#selectKeptValue(values, mode, "low"); + const success = kept <= target; + + return { characteristic, characteristicKey, target, values, kept, success, mode, isNaturalOne: kept === 1, isNaturalTwenty: kept === 20 }; + } + + static async #resolveFavorBoost(actor, favorKey, mode = "normal") { + if (!favorKey) return null; + + const label = DonjonEtCieUtility.getFavorLabel(favorKey); + const path = `system.faveurs.${favorKey}.delta`; + const before = Number(foundry.utils.getProperty(actor, path) ?? 0); + if (!before) { + ui.notifications.warn(`Aucune faveur disponible pour ${label}.`); + return null; + } + + const resolved = await this.#resolveFormulaRoll(`1d${before}`, {}, { favorable: "high" }); + const result = resolved.kept; + const degraded = result <= 3; + const after = degraded ? DonjonEtCieUtility.degradeUsageDie(before) : before; + if (after !== before) { + await actor.update({ [path]: after }); + } + + return { + key: favorKey, + label, + before, + after, + result, + degraded, + stable: !degraded, + effectiveMode: this.#applyFavorMode(mode), + modeBefore: mode, + modeAfter: this.#applyFavorMode(mode), + note: degraded + ? "Le coup de pouce reste anonyme : un collegue du departement a donne l'info utile." + : "Le coup de pouce tient bon : nommez le collegue, ses trois traits et la relation pour le trombinoscope." + }; + } + + static async useFavorService(actor, favorKey) { + if (!favorKey) return null; + + const label = DonjonEtCieUtility.getFavorLabel(favorKey); + const path = `system.faveurs.${favorKey}.delta`; + const before = Number(foundry.utils.getProperty(actor, path) ?? 0); + if (!before) { + ui.notifications.warn(`Aucune faveur disponible pour ${label}.`); + return null; + } + + const after = DonjonEtCieUtility.degradeUsageDie(before); + await actor.update({ [path]: after }); + + await this.#createChatCard(actor, "systems/fvtt-donjon-et-cie/templates/chat/favor-card.hbs", { + title: game.i18n.localize("DNC.Roll.Favor"), + subtitle: label, + kindLabel: "Service", + before: DonjonEtCieUtility.formatUsageDie(before), + after: DonjonEtCieUtility.formatUsageDie(after), + autoSpent: true, + note: "La faveur est brulee pour obtenir directement l'aide souhaitee, a la discretion du MJ." + }); + + return { key: favorKey, label, before, after }; + } + + static async #ensureFocus(actor) { + const focusDelta = Number(actor.system.magie?.focus?.delta ?? 0); + const focusResult = Number(actor.system.magie?.focus?.resultat ?? 0); + const focusSceneId = actor.system.magie?.focus?.sceneId ?? ""; + const currentSceneId = DonjonEtCieUtility.getCurrentSceneId(); + const sameScene = focusSceneId === currentSceneId; + const activeFocus = sameScene ? focusResult : 0; + + if (!focusDelta) { + return { delta: 0, activeValue: 0, rolled: false, before: 0, after: 0, degraded: false }; + } + + if (sameScene) { + return { delta: focusDelta, activeValue: activeFocus, rolled: false, before: focusDelta, after: focusDelta, degraded: false }; + } + + const resolved = await this.#resolveFormulaRoll(`1d${focusDelta}`, {}, { favorable: "high" }); + const result = resolved.kept; + const degraded = result <= 3; + const after = degraded ? DonjonEtCieUtility.degradeUsageDie(focusDelta) : focusDelta; + const updateData = { + "system.magie.focus.resultat": result, + "system.magie.focus.sceneId": currentSceneId + }; + + if (after !== focusDelta) { + updateData["system.magie.focus.delta"] = after; + } + + await actor.update(updateData); + + return { + delta: after, + activeValue: result, + rolled: true, + before: focusDelta, + after, + degraded, + values: resolved.values + }; + } + + static async rollCharacteristic(actor, characteristicKey, { mode = "normal", label = null, favorKey = "" } = {}) { + const favor = await this.#resolveFavorBoost(actor, favorKey, mode); + const effectiveMode = favor?.effectiveMode ?? mode; + const result = await this.#resolveCharacteristic(actor, characteristicKey, { mode: effectiveMode }); + if (!result) return null; + + await this.#createChatCard(actor, "systems/fvtt-donjon-et-cie/templates/chat/roll-card.hbs", { + title: label ?? "Jet de caracteristique", + subtitle: result.characteristic.label, + formula: result.values.length > 1 ? "2d20" : "1d20", + mode: effectiveMode, + modeLabel: this.#getModeLabel(effectiveMode), + target: result.target, + targetPillLabel: "Cible", + targetPillValue: result.target, + values: result.values, + kept: result.kept, + keptPillLabel: "Garde", + keptPillValue: result.kept, + success: result.success, + favorLabel: favor?.label ?? null, + favorNote: favor?.note ?? null, + details: [ + { label: "Caracteristique", value: result.characteristic.label }, + { label: "Valeur cible", value: result.target }, + ...(favor ? [ + { label: "Faveur", value: favor.label }, + { label: "Dé de faveur", value: favor.result }, + { label: "Avant", value: DonjonEtCieUtility.formatUsageDie(favor.before) }, + { label: "Apres", value: DonjonEtCieUtility.formatUsageDie(favor.after) } + ] : []) + ] + }); + + return { ...result, favor, mode: effectiveMode }; + } + + static async rollInitiative(actor, { mode = "normal" } = {}) { + const dex = Number(actor.system.caracteristiques?.dexterite?.value ?? 0); + const sheetBonus = Number(actor.system.combat?.initiativeBonus ?? 0); + const result = await this.#resolveFormulaRoll("1d20 + @dex + @sheetBonus", { dex, sheetBonus }, { mode, favorable: "high" }); + const dieValues = result.rolls.map((roll) => roll.dice[0]?.results?.[0]?.result ?? roll.total); + const die = dieValues[result.keptIndex] ?? dieValues[0] ?? result.kept; + + let syncedCombat = null; + const activeCombat = game.combats?.contents?.find((combat) => combat.active); + const combatant = activeCombat?.combatants?.find((entry) => entry.actorId === actor.id); + if (combatant) { + await activeCombat.setInitiative(combatant.id, result.kept); + const ordered = [...activeCombat.combatants].sort((a, b) => (b.initiative ?? -Infinity) - (a.initiative ?? -Infinity)); + syncedCombat = { + name: activeCombat.name, + initiative: result.kept, + rank: ordered.findIndex((entry) => entry.id === combatant.id) + 1, + total: ordered.length + }; + } + + await this.#createChatCard(actor, "systems/fvtt-donjon-et-cie/templates/chat/initiative-card.hbs", { + title: game.i18n.localize("DNC.Roll.Initiative"), + actorName: actor.name, + total: result.kept, + formula: result.rolls.length > 1 ? `2 × ${result.formula}` : result.formula, + die, + dieValues, + dex, + bonus: sheetBonus, + mode: result.mode, + modeLabel: this.#getModeLabel(result.mode), + syncedCombat + }); + + return { total: result.kept, die, dieValues, dex, bonus: sheetBonus, mode: result.mode, syncedCombat }; + } + + static async rollHitDice(actor) { + const formula = String(actor.system.sante?.dv ?? "").trim(); + if (!formula) return null; + + let roll; + try { + roll = await (new Roll(formula)).evaluate(); + } catch (error) { + ui.notifications.error(`Formule de DV invalide : ${formula}`); + throw error; + } + + const dieValues = roll.dice.flatMap((die) => die.results?.map((result) => result.result) ?? []); + + await this.#createChatCard(actor, "systems/fvtt-donjon-et-cie/templates/chat/hit-dice-card.hbs", { + title: game.i18n.localize("DNC.Roll.HitDice"), + actorName: actor.name, + formula: roll.formula, + total: roll.total, + dieValues + }); + + return { formula: roll.formula, total: roll.total, dieValues }; + } + + static async rollWeapon(actor, item, { mode = "normal", favorKey = "" } = {}) { + const characteristicKey = DonjonEtCieUtility.getWeaponCharacteristicKey(item.system.categorie); + const favor = await this.#resolveFavorBoost(actor, favorKey, mode); + const effectiveMode = favor?.effectiveMode ?? mode; + const result = await this.#resolveCharacteristic(actor, characteristicKey, { mode: effectiveMode }); + + if (!result) return null; + + const characteristicLabel = DONJON_ET_CIE.characteristics[characteristicKey]?.label ?? characteristicKey; + const characteristicShort = DONJON_ET_CIE.characteristics[characteristicKey]?.short ?? characteristicKey; + + await this.#createChatCard(actor, "systems/fvtt-donjon-et-cie/templates/chat/roll-card.hbs", { + title: `${game.i18n.localize("DNC.Roll.Attack")} : ${item.name}`, + subtitle: DONJON_ET_CIE.weaponCategoryOptions[item.system.categorie] ?? item.system.categorie, + formula: result.values.length > 1 ? "2d20" : "1d20", + mode: effectiveMode, + modeLabel: this.#getModeLabel(effectiveMode), + target: result.target, + targetPillLabel: characteristicShort, + targetPillValue: result.target, + values: result.values, + kept: result.kept, + keptPillLabel: "Jet", + keptPillValue: result.kept, + success: result.success, + favorLabel: favor?.label ?? null, + favorNote: favor?.note ?? null, + showDamageButton: result.success && Boolean(item.system.degats), + itemUuid: item.uuid, + details: [ + { label: "Arme", value: item.name }, + { label: "Caracteristique", value: characteristicLabel }, + { label: `Valeur de ${characteristicLabel}`, value: result.target }, + { label: "Degats", value: item.system.degats || "—" }, + { label: "Portee", value: item.system.portee || "—" }, + ...(favor ? [ + { label: "Faveur", value: favor.label }, + { label: "Dé de faveur", value: favor.result }, + { label: "Avant", value: DonjonEtCieUtility.formatUsageDie(favor.before) }, + { label: "Apres", value: DonjonEtCieUtility.formatUsageDie(favor.after) } + ] : []) + ] + }); + + return { ...result, favor, mode: effectiveMode }; + } + + static async rollDamage(actor, item, { mode = "normal" } = {}) { + if (!item.system.degats) return null; + const actorBonus = Number(actor?.system?.combat?.degatsBonus ?? 0); + const totalBonus = actorBonus; + const formula = totalBonus ? `${item.system.degats} + ${totalBonus}` : item.system.degats; + const result = await this.#resolveFormulaRoll(formula, {}, { mode, favorable: "high" }); + const targets = DonjonEtCieUtility.getSceneDamageTargets(); + const rollDieLabels = result.rolls.map((roll) => { + const dieValues = roll.dice.flatMap((die) => die.results?.map((dieResult) => dieResult.result) ?? []); + return dieValues.length ? dieValues.join(" + ") : String(roll.total ?? "—"); + }); + const keptDieLabel = rollDieLabels[result.keptIndex] ?? rollDieLabels[0] ?? String(result.kept); + + await this.#createChatCard(actor ?? item.actor, "systems/fvtt-donjon-et-cie/templates/chat/damage-card.hbs", { + title: `${game.i18n.localize("DNC.Roll.Damage")} : ${item.name}`, + subtitle: item.system.portee || item.type, + formula: result.rolls.length > 1 ? `2 × ${result.formula}` : result.formula, + mode: result.mode, + modeLabel: this.#getModeLabel(result.mode), + rollDieLabels, + keptDieLabel, + values: result.values, + total: result.kept, + bonus: totalBonus, + baseDamage: item.system.degats, + sourceLabel: item.name, + targets, + hasTargets: targets.length > 0 + }); + + return { total: result.kept, formula: result.formula, bonus: totalBonus, values: result.values, mode: result.mode }; + } + + static async applyDamage(target, { damage = 0, useArmor = false, sourceLabel = "" } = {}) { + const actor = target?.actor ?? target; + if (!actor || actor.documentName !== "Actor") { + ui.notifications.warn(game.i18n.localize("DNC.Chat.InvalidDamageTarget")); + return null; + } + + const targetName = target?.name ?? actor.name; + const applied = await actor.applyIncomingDamage(damage, { useArmor }); + + await this.#createChatCard(actor, "systems/fvtt-donjon-et-cie/templates/chat/damage-application-card.hbs", { + title: game.i18n.localize("DNC.Chat.DamageApplied"), + subtitle: targetName, + sourceLabel, + total: applied.hpDamage, + incoming: applied.incoming, + useArmor: applied.useArmor, + armorLabel: applied.armorLabel, + armorAvailable: applied.armorAvailable, + armorBefore: applied.armorBefore, + armorAbsorbed: applied.armorAbsorbed, + armorAfter: applied.armorAfter, + pvBefore: applied.pvBefore, + pvAfter: applied.pvAfter, + pvMax: applied.pvMax + }); + + return { actor, targetName, ...applied }; + } + + static async rollSpell(actor, item, { mode = "normal", favorKey = "" } = {}) { + const characteristicKey = item.system.caracteristique || "intelligence"; + const focus = await this.#ensureFocus(actor); + const rank = Number(actor.system.anciennete?.rang ?? actor.system.sante?.dv ?? 0); + const cost = Number(item.system.coutPv ?? 0); + const autoDisadvantage = cost > rank; + const baseMode = autoDisadvantage ? "desavantage" : mode; + const favor = await this.#resolveFavorBoost(actor, favorKey, baseMode); + const effectiveMode = favor?.effectiveMode ?? baseMode; + const result = await this.#resolveCharacteristic(actor, characteristicKey, { mode: effectiveMode }); + + if (!result) return null; + + const currentPv = Number(actor.system.sante?.pv?.value ?? 0); + const availableMagicHp = currentPv + focus.activeValue; + + if (cost > availableMagicHp) { + ui.notifications.warn("Le lanceur ne dispose pas d'assez de PV et de focus pour payer ce sort."); + return null; + } + + const characteristicShort = DONJON_ET_CIE.characteristics[characteristicKey]?.short ?? characteristicKey; + const success = result.isNaturalTwenty ? false : result.success; + const focusSpent = result.isNaturalOne ? 0 : Math.min(cost, focus.activeValue); + const focusRemaining = Math.max(focus.activeValue - focusSpent, 0); + const spentPv = result.isNaturalOne ? 0 : Math.max(cost - focusSpent, 0); + const remainingPv = Math.max(currentPv - spentPv, 0); + const updateData = {}; + + if (spentPv !== 0) { + updateData["system.sante.pv.value"] = remainingPv; + } + + if (focusSpent !== 0) { + updateData["system.magie.focus.resultat"] = focusRemaining; + } + + if (Object.keys(updateData).length) { + await actor.update(updateData); + } + + const canInvokeChaos = !success && !result.isNaturalTwenty && Number(actor.system.magie?.chaos?.delta ?? 12) >= 4; + const specialNote = result.isNaturalTwenty + ? "20 naturel : la magie tourne a la catastrophe, au choix du MJ." + : (result.isNaturalOne ? "1 naturel : effet benefique possible ; par defaut, aucun PV n'est depense." : null); + + await this.#createChatCard(actor, "systems/fvtt-donjon-et-cie/templates/chat/spell-card.hbs", { + title: `${game.i18n.localize("DNC.Roll.Spell")} : ${item.name}`, + subtitle: item.system.portee || "Sortilege", + formula: result.values.length > 1 ? "2d20" : "1d20", + mode: effectiveMode, + modeLabel: this.#getModeLabel(effectiveMode), + autoDisadvantage, + autoDisadvantageCanceled: autoDisadvantage && Boolean(favor), + favorLabel: favor?.label ?? null, + favorNote: favor?.note ?? null, + targetPillLabel: characteristicShort, + targetPillValue: result.target, + values: result.values, + kept: result.kept, + keptPillLabel: "Jet", + keptPillValue: result.kept, + success, + specialNote, + showDamageButton: success && Boolean(item.system.degats), + showChaosButton: canInvokeChaos, + itemUuid: item.uuid, + actorUuid: actor.uuid, + details: [ + { label: "Sortilege", value: item.name }, + { label: "Caracteristique", value: result.characteristic.label }, + { label: "Valeur de la caracteristique", value: result.target }, + { label: "Cout en PV", value: cost }, + { label: "Focus", value: focus.activeValue > 0 ? `${focus.activeValue} (${DonjonEtCieUtility.formatUsageDie(focus.before)})` : "—" }, + { label: "Focus depense", value: focusSpent }, + { label: "Focus restant", value: focusRemaining }, + { label: "PV depenses", value: spentPv }, + { label: "PV restants", value: remainingPv }, + { label: "Rang du lanceur", value: rank }, + { label: "Difficulte", value: item.system.difficulte ?? 0 }, + { label: "Effet", value: item.system.effet || "—" }, + ...(favor ? [ + { label: "Faveur", value: favor.label }, + { label: "Dé de faveur", value: favor.result }, + { label: "Avant", value: DonjonEtCieUtility.formatUsageDie(favor.before) }, + { label: "Apres", value: DonjonEtCieUtility.formatUsageDie(favor.after) } + ] : []) + ], + focusRolled: focus.rolled, + focusValue: focus.activeValue, + focusSpent, + focusRemaining, + focusBeforeLabel: DonjonEtCieUtility.formatUsageDie(focus.before), + focusAfterLabel: DonjonEtCieUtility.formatUsageDie(focus.after), + focusDegraded: focus.degraded, + spentPv, + remainingPv + }); + + return { ...result, success, spentPv, remainingPv, cost, focus, focusSpent, focusRemaining, favor, mode: effectiveMode }; + } + + static async rollSpellChaos(actor, item) { + const before = Number(actor?.system?.magie?.chaos?.delta ?? 12); + if (!before || before < 4) { + ui.notifications.warn("Le Chaos n'est pas disponible pour ce sort."); + return null; + } + + const resolved = await this.#resolveFormulaRoll(`1d${before}`, {}, { favorable: "high" }); + const result = resolved.kept; + const degraded = result <= 3; + const after = degraded ? DonjonEtCieUtility.degradeUsageDie(before) : before; + const chaosEntry = DONJON_ET_CIE.chaosTable[result] ?? null; + + if (after !== before) { + await actor.update({ "system.magie.chaos.delta": after }); + } + + await this.#createChatCard(actor, "systems/fvtt-donjon-et-cie/templates/chat/chaos-card.hbs", { + title: `Chaos : ${item.name}`, + value: result, + before: DonjonEtCieUtility.formatUsageDie(before), + after: DonjonEtCieUtility.formatUsageDie(after), + chaosEntry, + degraded, + exhausted: after < 4, + itemName: item.name + }); + + return { result, before, after, degraded, chaosEntry }; + } + + static async rollUsage(item, { mode = "normal" } = {}) { + const before = Number(item.system.delta ?? 0); + if (!before) return null; + + const resolved = await this.#resolveFormulaRoll(`1d${before}`, {}, { mode, favorable: "high" }); + const result = resolved.kept; + const degraded = result <= 3; + const after = degraded ? DonjonEtCieUtility.degradeUsageDie(before) : before; + const updateData = {}; + + if (item.type === "armure") { + updateData["system.resultatProtection"] = result; + } + + if (after !== before) { + updateData["system.delta"] = after; + } + + if (Object.keys(updateData).length) { + await item.update(updateData); + } + + await this.#createChatCard(item.actor, "systems/fvtt-donjon-et-cie/templates/chat/usage-card.hbs", { + title: `${game.i18n.localize("DNC.Roll.Usage")} : ${item.name}`, + value: result, + values: resolved.values, + mode: resolved.mode, + modeLabel: this.#getModeLabel(resolved.mode), + before: DonjonEtCieUtility.formatUsageDie(before), + after: DonjonEtCieUtility.formatUsageDie(after), + protectionStored: item.type === "armure" ? result : null, + degraded, + exhausted: after === 0 + }); + + return { result, values: resolved.values, mode: resolved.mode, before, after, degraded }; + } +} diff --git a/modules/donjon-et-cie-utility.mjs b/modules/donjon-et-cie-utility.mjs new file mode 100644 index 0000000..09fcebe --- /dev/null +++ b/modules/donjon-et-cie-utility.mjs @@ -0,0 +1,189 @@ +import { DONJON_ET_CIE } from "./donjon-et-cie-config.mjs"; + +export class DonjonEtCieUtility { + static defaultItemIcons = { + arme: "systems/fvtt-donjon-et-cie/assets/icons/system/items/arme.svg", + armure: "systems/fvtt-donjon-et-cie/assets/icons/system/items/armure.svg", + trait: "systems/fvtt-donjon-et-cie/assets/icons/system/items/trait.svg", + sortilege: "systems/fvtt-donjon-et-cie/assets/icons/system/items/sortilege.svg", + equipement: "systems/fvtt-donjon-et-cie/assets/icons/system/items/equipement.svg", + other: "systems/fvtt-donjon-et-cie/assets/icons/system/items/autre.svg" + }; + + static async preloadHandlebarsTemplates() { + return foundry.applications.handlebars.loadTemplates([ + "systems/fvtt-donjon-et-cie/templates/actors/employe-sheet.hbs", + "systems/fvtt-donjon-et-cie/templates/actors/pnj-sheet.hbs", + "systems/fvtt-donjon-et-cie/templates/items/item-sheet.hbs", + "systems/fvtt-donjon-et-cie/templates/dialogs/characteristic-roll.hbs", + "systems/fvtt-donjon-et-cie/templates/dialogs/initiative-roll.hbs", + "systems/fvtt-donjon-et-cie/templates/dialogs/weapon-roll.hbs", + "systems/fvtt-donjon-et-cie/templates/dialogs/damage-roll.hbs", + "systems/fvtt-donjon-et-cie/templates/dialogs/spell-roll.hbs", + "systems/fvtt-donjon-et-cie/templates/dialogs/usage-roll.hbs", + "systems/fvtt-donjon-et-cie/templates/chat/roll-card.hbs", + "systems/fvtt-donjon-et-cie/templates/chat/spell-card.hbs", + "systems/fvtt-donjon-et-cie/templates/chat/chaos-card.hbs", + "systems/fvtt-donjon-et-cie/templates/chat/hit-dice-card.hbs", + "systems/fvtt-donjon-et-cie/templates/chat/damage-card.hbs", + "systems/fvtt-donjon-et-cie/templates/chat/damage-application-card.hbs", + "systems/fvtt-donjon-et-cie/templates/chat/favor-card.hbs", + "systems/fvtt-donjon-et-cie/templates/chat/initiative-card.hbs", + "systems/fvtt-donjon-et-cie/templates/chat/usage-card.hbs", + "systems/fvtt-donjon-et-cie/templates/chat/item-card.hbs" + ]); + } + + static getCharacteristicEntries(system) { + return Object.entries(DONJON_ET_CIE.characteristics).map(([key, metadata]) => ({ + key, + label: metadata.label, + short: metadata.short, + value: system.caracteristiques?.[key]?.value ?? 0 + })); + } + + static formatUsageDie(value) { + return value ? `Δ${value}` : "—"; + } + + static getDefaultItemIcon(type) { + return this.defaultItemIcons[type] ?? this.defaultItemIcons.other; + } + + static getCurrentSceneId() { + return canvas?.scene?.id ?? game.scenes?.current?.id ?? "global"; + } + + static getSceneDamageTargets() { + const scene = canvas?.scene ?? game.scenes?.current; + const tokens = scene?.tokens?.contents ?? []; + + return tokens + .map((token) => { + const actor = token.actor; + if (!actor || !["employe", "pnj"].includes(actor.type)) return null; + + const tokenName = token.name || actor.name; + const actorName = actor.name || tokenName; + const label = tokenName === actorName ? tokenName : `${tokenName} (${actorName})`; + + return { + tokenId: token.id, + tokenUuid: token.uuid, + actorUuid: actor.uuid, + label + }; + }) + .filter(Boolean) + .sort((a, b) => a.label.localeCompare(b.label, "fr", { sensitivity: "base" })); + } + + static getMagicResourceContext(actor) { + const rank = Number(actor.system.anciennete?.rang ?? actor.system.sante?.dv ?? 0); + const focusDelta = Number(actor.system.magie?.focus?.delta ?? 0); + const focusResult = Number(actor.system.magie?.focus?.resultat ?? 0); + const focusSceneId = actor.system.magie?.focus?.sceneId ?? ""; + const activeFocus = focusSceneId === this.getCurrentSceneId() ? focusResult : 0; + const chaosDelta = Number(actor.system.magie?.chaos?.delta ?? 12); + + return { + rank, + focusDelta, + focusLabel: this.formatUsageDie(focusDelta), + focusSceneId, + focusStoredResult: focusResult, + focusActiveValue: activeFocus, + focusIsActive: activeFocus > 0, + focusDisplay: activeFocus > 0 ? `${activeFocus} (${this.formatUsageDie(focusDelta)})` : "—", + chaosDelta, + chaosLabel: this.formatUsageDie(chaosDelta), + chaosAvailable: chaosDelta >= 4 + }; + } + + static getFavorLabel(key) { + return DONJON_ET_CIE.favorDepartments[key] ?? key; + } + + static getFavorEntries(system) { + const favors = system.faveurs ?? {}; + return Object.entries(DONJON_ET_CIE.favorDepartments).map(([key, label]) => { + const delta = Number(favors[key]?.delta ?? 0); + return { + key, + label, + delta, + deltaLabel: this.formatUsageDie(delta), + hasFavor: delta > 0 + }; + }); + } + + static getAvailableFavorOptions(actor) { + return this.getFavorEntries(actor.system) + .filter((entry) => entry.hasFavor) + .map((entry) => ({ value: entry.key, label: `${entry.label} (${entry.deltaLabel})` })); + } + + static getChaosTableEntries() { + return Object.entries(DONJON_ET_CIE.chaosTable) + .map(([value, entry]) => ({ value: Number(value), ...entry })) + .sort((a, b) => a.value - b.value); + } + + static degradeUsageDie(value) { + const sequence = [12, 10, 8, 6, 4]; + const index = sequence.indexOf(Number(value)); + if (index === -1) return 0; + return sequence[index + 1] ?? 0; + } + + static sortByName(documents) { + return [...documents].sort((a, b) => a.name.localeCompare(b.name, "fr", { sensitivity: "base" })); + } + + static getWeaponCharacteristicKey(category) { + return category === "distance" ? "dexterite" : "force"; + } + + static getWeaponCharacteristicLabel(category) { + const key = this.getWeaponCharacteristicKey(category); + return DONJON_ET_CIE.characteristics[key]?.label ?? key; + } + + static enrichItemForSheet(item) { + const system = item.system; + const delta = Number(system.delta ?? 0); + return { + id: item.id, + name: item.name, + type: item.type, + img: item.img, + system, + uuid: item.uuid, + usageLabel: delta > 0 ? this.formatUsageDie(delta) : null, + protectionLabel: item.type === "armure" && Number(system.resultatProtection ?? 0) > 0 ? `Protection ${system.resultatProtection}` : null, + weaponCharacteristicLabel: item.type === "arme" ? this.getWeaponCharacteristicLabel(system.categorie) : null, + canRoll: ["arme", "sortilege"].includes(item.type), + canUse: delta > 0, + canRollDamage: Boolean(system.degats), + rollAction: item.type === "sortilege" ? "rollSpell" : "rollWeapon", + damageAction: "rollDamage", + isEquipped: Boolean(system.equipee) + }; + } + + static buildActorSections(actor) { + return Object.entries(DONJON_ET_CIE.actorSections).map(([key, metadata]) => { + const types = DONJON_ET_CIE.sectionTypes[key]; + const items = this.sortByName(actor.items.filter((item) => types.includes(item.type))).map((item) => this.enrichItemForSheet(item)); + return { + key, + label: metadata.label, + createType: metadata.createType, + items + }; + }); + } +} diff --git a/modules/models/arme.mjs b/modules/models/arme.mjs new file mode 100644 index 0000000..7d0fe20 --- /dev/null +++ b/modules/models/arme.mjs @@ -0,0 +1,16 @@ +import BaseItemDataModel from "./base-item.mjs"; + +export default class ArmeDataModel extends BaseItemDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + ...super.defineSchema(), + categorie: new fields.StringField({ initial: "melee" }), + caracteristique: new fields.StringField({ initial: "force" }), + degats: new fields.StringField({ initial: "1d6" }), + portee: new fields.StringField({ initial: "" }), + mains: new fields.NumberField({ initial: 1, integer: true }), + equipee: new fields.BooleanField({ initial: false }) + }; + } +} diff --git a/modules/models/armure.mjs b/modules/models/armure.mjs new file mode 100644 index 0000000..2d845bf --- /dev/null +++ b/modules/models/armure.mjs @@ -0,0 +1,14 @@ +import BaseItemDataModel from "./base-item.mjs"; + +export default class ArmureDataModel extends BaseItemDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + ...super.defineSchema(), + delta: new fields.NumberField({ initial: 8, integer: true }), + resultatProtection: new fields.NumberField({ initial: 0, integer: true }), + equipee: new fields.BooleanField({ initial: false }), + encombrement: new fields.StringField({ initial: "" }) + }; + } +} diff --git a/modules/models/base-item.mjs b/modules/models/base-item.mjs new file mode 100644 index 0000000..b72d20f --- /dev/null +++ b/modules/models/base-item.mjs @@ -0,0 +1,9 @@ +export default class BaseItemDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + description: new fields.HTMLField({ initial: "" }), + notes: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/capacite.mjs b/modules/models/capacite.mjs new file mode 100644 index 0000000..acb05da --- /dev/null +++ b/modules/models/capacite.mjs @@ -0,0 +1,12 @@ +import BaseItemDataModel from "./base-item.mjs"; + +export default class CapaciteDataModel extends BaseItemDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + ...super.defineSchema(), + cout: new fields.StringField({ initial: "" }), + effet: new fields.StringField({ initial: "" }) + }; + } +} diff --git a/modules/models/consommable.mjs b/modules/models/consommable.mjs new file mode 100644 index 0000000..6f9b98e --- /dev/null +++ b/modules/models/consommable.mjs @@ -0,0 +1,13 @@ +import BaseItemDataModel from "./base-item.mjs"; + +export default class ConsommableDataModel extends BaseItemDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + ...super.defineSchema(), + quantite: new fields.NumberField({ initial: 1, integer: true }), + delta: new fields.NumberField({ initial: 6, integer: true }), + effet: new fields.StringField({ initial: "" }) + }; + } +} diff --git a/modules/models/employe.mjs b/modules/models/employe.mjs new file mode 100644 index 0000000..18815ee --- /dev/null +++ b/modules/models/employe.mjs @@ -0,0 +1,66 @@ +import { DONJON_ET_CIE } from "../donjon-et-cie-config.mjs"; + +export default class EmployeDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + const makeCharacteristic = (label, short) => new fields.SchemaField({ + label: new fields.StringField({ initial: label }), + short: new fields.StringField({ initial: short }), + value: new fields.NumberField({ initial: 10, integer: true }) + }); + const favorFields = Object.fromEntries(Object.keys(DONJON_ET_CIE.favorDepartments).map((key) => [ + key, + new fields.SchemaField({ + delta: new fields.NumberField({ initial: 0, integer: true }) + }) + ])); + + return { + concept: new fields.StringField({ initial: "" }), + anciennete: new fields.SchemaField({ + rang: new fields.NumberField({ initial: 1, integer: true }), + libelle: new fields.StringField({ initial: "Nouvel employe" }) + }), + caracteristiques: new fields.SchemaField({ + force: makeCharacteristic("FORce", "FOR"), + dexterite: makeCharacteristic("DEXterite", "DEX"), + constitution: makeCharacteristic("CONstitution", "CON"), + intelligence: makeCharacteristic("INTelligence", "INT"), + sagesse: makeCharacteristic("SAGesse", "SAG"), + charisme: makeCharacteristic("CHArisme", "CHA") + }), + sante: new fields.SchemaField({ + dv: new fields.StringField({ initial: "1d6" }), + pv: new fields.SchemaField({ + value: new fields.NumberField({ initial: 6, integer: true }), + max: new fields.NumberField({ initial: 6, integer: true }) + }) + }), + combat: new fields.SchemaField({ + initiativeBonus: new fields.NumberField({ initial: 0, integer: true }), + degatsBonus: new fields.NumberField({ initial: 0, integer: true }), + attaquesCorpsACorps: new fields.NumberField({ initial: 1, integer: true }), + attaquesDistance: new fields.NumberField({ initial: 1, integer: true }) + }), + magie: new fields.SchemaField({ + focus: new fields.SchemaField({ + delta: new fields.NumberField({ initial: 0, integer: true }), + resultat: new fields.NumberField({ initial: 0, integer: true }), + sceneId: new fields.StringField({ initial: "" }) + }), + chaos: new fields.SchemaField({ + delta: new fields.NumberField({ initial: 12, integer: true }) + }) + }), + profil: new fields.SchemaField({ + objectifPersonnel: new fields.HTMLField({ initial: "" }), + suspicion: new fields.NumberField({ initial: 0, integer: true }), + avertissements: new fields.NumberField({ initial: 0, integer: true }), + missionsReussies: new fields.NumberField({ initial: 0, integer: true }) + }), + faveurs: new fields.SchemaField(favorFields), + notes: new fields.HTMLField({ initial: "" }), + gmnotes: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/equipement.mjs b/modules/models/equipement.mjs new file mode 100644 index 0000000..52220da --- /dev/null +++ b/modules/models/equipement.mjs @@ -0,0 +1,13 @@ +import BaseItemDataModel from "./base-item.mjs"; + +export default class EquipementDataModel extends BaseItemDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + ...super.defineSchema(), + quantite: new fields.NumberField({ initial: 1, integer: true }), + equipee: new fields.BooleanField({ initial: false }), + emplacement: new fields.StringField({ initial: "" }) + }; + } +} diff --git a/modules/models/index.mjs b/modules/models/index.mjs new file mode 100644 index 0000000..15bff62 --- /dev/null +++ b/modules/models/index.mjs @@ -0,0 +1,11 @@ +export { default as BaseItemDataModel } from "./base-item.mjs"; +export { default as TraitDataModel } from "./trait.mjs"; +export { default as LangueDataModel } from "./langue.mjs"; +export { default as CapaciteDataModel } from "./capacite.mjs"; +export { default as SortilegeDataModel } from "./sortilege.mjs"; +export { default as ArmeDataModel } from "./arme.mjs"; +export { default as ArmureDataModel } from "./armure.mjs"; +export { default as EquipementDataModel } from "./equipement.mjs"; +export { default as ConsommableDataModel } from "./consommable.mjs"; +export { default as EmployeDataModel } from "./employe.mjs"; +export { default as PnjDataModel } from "./pnj.mjs"; diff --git a/modules/models/langue.mjs b/modules/models/langue.mjs new file mode 100644 index 0000000..14e2ca1 --- /dev/null +++ b/modules/models/langue.mjs @@ -0,0 +1,11 @@ +import BaseItemDataModel from "./base-item.mjs"; + +export default class LangueDataModel extends BaseItemDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + ...super.defineSchema(), + niveau: new fields.StringField({ initial: "courant" }) + }; + } +} diff --git a/modules/models/pnj.mjs b/modules/models/pnj.mjs new file mode 100644 index 0000000..f4b48e7 --- /dev/null +++ b/modules/models/pnj.mjs @@ -0,0 +1,36 @@ +export default class PnjDataModel extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + + return { + espece: new fields.StringField({ initial: "" }), + categorie: new fields.StringField({ initial: "Resident" }), + role: new fields.StringField({ initial: "" }), + resume: new fields.StringField({ initial: "" }), + sante: new fields.SchemaField({ + dv: new fields.StringField({ initial: "1d8" }), + pv: new fields.SchemaField({ + value: new fields.NumberField({ initial: 6, integer: true }), + max: new fields.NumberField({ initial: 6, integer: true }) + }) + }), + defense: new fields.SchemaField({ + armure: new fields.SchemaField({ + delta: new fields.NumberField({ initial: 0, integer: true }), + resultatProtection: new fields.NumberField({ initial: 0, integer: true }) + }), + courage: new fields.SchemaField({ + delta: new fields.NumberField({ initial: 0, integer: true }) + }) + }), + attaque: new fields.SchemaField({ + nom: new fields.StringField({ initial: "Attaque" }), + degats: new fields.StringField({ initial: "1d6" }), + notes: new fields.StringField({ initial: "" }) + }), + pouvoirsSpeciaux: new fields.HTMLField({ initial: "" }), + description: new fields.HTMLField({ initial: "" }), + notes: new fields.HTMLField({ initial: "" }) + }; + } +} diff --git a/modules/models/sortilege.mjs b/modules/models/sortilege.mjs new file mode 100644 index 0000000..715fe8f --- /dev/null +++ b/modules/models/sortilege.mjs @@ -0,0 +1,17 @@ +import BaseItemDataModel from "./base-item.mjs"; + +export default class SortilegeDataModel extends BaseItemDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + ...super.defineSchema(), + caracteristique: new fields.StringField({ initial: "intelligence" }), + difficulte: new fields.NumberField({ initial: 0, integer: true }), + coutPv: new fields.NumberField({ initial: 0, integer: true }), + portee: new fields.StringField({ initial: "" }), + duree: new fields.StringField({ initial: "" }), + effet: new fields.StringField({ initial: "" }), + degats: new fields.StringField({ initial: "" }) + }; + } +} diff --git a/modules/models/trait.mjs b/modules/models/trait.mjs new file mode 100644 index 0000000..aadb7ae --- /dev/null +++ b/modules/models/trait.mjs @@ -0,0 +1,11 @@ +import BaseItemDataModel from "./base-item.mjs"; + +export default class TraitDataModel extends BaseItemDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + ...super.defineSchema(), + etiquette: new fields.StringField({ initial: "" }) + }; + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..d3f9afa --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4983 @@ +{ + "name": "fvtt-donjon-et-cie", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "fvtt-donjon-et-cie", + "version": "0.1.0", + "license": "UNLICENSED", + "devDependencies": { + "gulp": "^4.0.2", + "gulp-less": "^5.0.0", + "gulp-rename": "^2.0.0", + "gulp-sourcemaps": "^3.0.0" + } + }, + "node_modules/@gulp-sourcemaps/identity-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", + "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^6.4.1", + "normalize-path": "^3.0.0", + "postcss": "^7.0.16", + "source-map": "^0.6.0", + "through2": "^3.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@gulp-sourcemaps/identity-map/node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "node_modules/@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha512-o/EatdaGt8+x2qpb0vFLC/2Gug/xYPRXb6a+ET1wGYKozKN3krDWC/zZFZAtrzxJHuDL12mwdfEFKcKMNvc55A==", + "dev": true, + "license": "MIT", + "dependencies": { + "normalize-path": "^2.0.1", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@gulp-sourcemaps/map-sources/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@gulp-sourcemaps/map-sources/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-wrap": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "license": "ISC", + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-equal": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/async-each": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", + "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT" + }, + "node_modules/async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-done": "^1.2.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "dev": true, + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "3.X", + "memoizee": "0.4.X", + "object-assign": "4.X" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "node_modules/each-props/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "dev": true, + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "license": "ISC", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw==", + "dev": true, + "license": "MIT" + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fined/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fs-mkdirp-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true, + "license": "ISC" + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-less": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp-less/-/gulp-less-5.0.0.tgz", + "integrity": "sha512-W2I3TewO/By6UZsM/wJG3pyK5M6J0NYmJAAhwYXQHR+38S0iDtZasmUgFCH3CQj+pQYw/PAIzxvFvwtEXz1HhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "less": "^3.7.1 || ^4.0.0", + "object-assign": "^4.0.1", + "plugin-error": "^1.0.0", + "replace-ext": "^2.0.0", + "through2": "^4.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/gulp-rename": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.1.0.tgz", + "integrity": "sha512-dGuzuH8jQGqCMqC544IEPhs5+O2l+IkdoSZsgd4kY97M1CxQeI3qrmweQBIrxLBbjbe/8uEWK8HHcNBc3OCy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-sourcemaps": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", + "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@gulp-sourcemaps/identity-map": "^2.0.1", + "@gulp-sourcemaps/map-sources": "^1.0.0", + "acorn": "^6.4.1", + "convert-source-map": "^1.0.0", + "css": "^3.0.0", + "debug-fabulous": "^1.0.0", + "detect-newline": "^2.0.0", + "graceful-fs": "^4.0.0", + "source-map": "^0.6.0", + "strip-bom-string": "^1.0.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gulp-sourcemaps/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "glogg": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow==", + "dev": true, + "license": "MIT", + "dependencies": { + "flush-write-stream": "^1.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/less": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/less/-/less-4.6.4.tgz", + "integrity": "sha512-OJmO5+HxZLLw0RLzkqaNHzcgEAQG7C0y3aMbwtCzIUFZsLMNNq/1IdAdHEycQ58CwUO3jPTHmoN+tE5I7FQxNg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "copy-anything": "^3.0.5", + "parse-node-version": "^1.0.1" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/liftoff/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es5-ext": "~0.10.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/make-iterator/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", + "dev": true, + "license": "MIT", + "dependencies": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/matchdep/node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/matchdep/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/memoizee": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.17.tgz", + "integrity": "sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==", + "dev": true, + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "es5-ext": "^0.10.64", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/nan": { + "version": "2.26.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.26.2.tgz", + "integrity": "sha512-0tTvBTYkt3tdGw22nrAy50x7gpbGCCFH3AFcyS5WiUu7Eu4vWlri1woE6qHBSfy11vksDqkiwjOnlR7WV8G1Hw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/needle": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.5.0.tgz", + "integrity": "sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.3.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true, + "license": "ISC" + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/plugin-error/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-bom-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true, + "license": "ISC" + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true, + "license": "ISC" + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "value-or-function": "^3.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "dev": true, + "license": "BlueOak-1.0.0", + "optional": true, + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "sver-compat": "^1.5.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "license": "MIT", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "node_modules/through2-filter/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/timers-ext": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.8.tgz", + "integrity": "sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==", + "dev": true, + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/to-through/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.4.0.tgz", + "integrity": "sha512-V6QarSfeSgDipGA9EZdoIzu03ZDlOFkk+FbEP5cwgrZXN3iIkYR91IjU2EnM6rB835kGQsqHX8qncObTXV+6KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "3.0.0" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true, + "license": "MIT" + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "license": "MIT", + "dependencies": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==", + "dev": true, + "license": "ISC", + "dependencies": { + "source-map": "^0.5.1" + } + }, + "node_modules/vinyl-sourcemaps-apply/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl/node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.1" + } + }, + "node_modules/yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8e99469 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "fvtt-donjon-et-cie", + "version": "0.1.0", + "description": "Systeme FoundryVTT pour Donjon & Cie", + "type": "module", + "scripts": { + "build": "gulp build", + "watch": "gulp watch" + }, + "license": "UNLICENSED", + "devDependencies": { + "gulp": "^4.0.2", + "gulp-less": "^5.0.0", + "gulp-rename": "^2.0.0", + "gulp-sourcemaps": "^3.0.0" + } +} diff --git a/packs/equipment/000014.ldb b/packs/equipment/000014.ldb new file mode 100644 index 0000000000000000000000000000000000000000..adce54afa8c2f5decce5636a704c279c8b656334 GIT binary patch literal 41244 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 41244 bytes +2026/04/13-15:36:59.252384 7f2a69ffb6c0 compacted to: files[ 0 0 1 0 0 0 0 ] +2026/04/13-15:36:59.252567 7f2a69ffb6c0 Delete type=2 #5 +2026/04/13-15:36:59.257663 7f2a69ffb6c0 Delete type=2 #13 +2026/04/13-15:36:59.369183 7f2a69ffb6c0 Manual compaction at level-1 from '!items!zyqLzmpbHxK3jt5q' @ 188 : 1 .. '!items!zyqLzmpbHxK3jt5q' @ 0 : 0; will stop at (end) diff --git a/packs/equipment/MANIFEST-000015 b/packs/equipment/MANIFEST-000015 new file mode 100644 index 0000000000000000000000000000000000000000..2c6d26385793b9d9caccf416739f1dd330def6d2 GIT binary patch literal 173 zcmX?h=bdvK10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAei199ykcfaYHqP&Rb`=1 zRc=9&M}@a>R*7jL;~oYuU}xf+bBIY%F)cqQCAFwn(c3aH)2-AX#nmh{GBd&{g)tMN jj*vO6RkM$BGB7d;a569pvK(go?0drj#1{neg@Jqk@K7<{ literal 0 HcmV?d00001 diff --git a/packs/random-tables/000004.log b/packs/random-tables/000004.log new file mode 100644 index 0000000..e69de29 diff --git a/packs/random-tables/000005.ldb b/packs/random-tables/000005.ldb new file mode 100644 index 0000000000000000000000000000000000000000..a89aee5b866d4bb7ec0f63e0edfab8b856a49b48 GIT binary patch literal 39147 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 figcaption { + color: #ccc; + text-shadow: 0 0 10px rgba(255, 255, 255, 0.25); +} +#pause > img { + opacity: 0; + height: 0; + width: 0; +} +#pause::before { + content: ""; + display: block; + background: url("../assets/ui/logo_01.webp") center / contain no-repeat; + height: 200px; + width: 200px; + margin-bottom: 0.75rem; + animation: dnc-pause-logo 4.2s ease-in-out infinite; + transform-origin: 50% 50%; + filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.35)); +} +@keyframes dnc-pause-logo { + 0%, + 100% { + transform: scale(0.98) translateY(0); + filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.3)); + } + 50% { + transform: scale(1.03) translateY(-6px); + filter: drop-shadow(0 16px 26px rgba(0, 0, 0, 0.45)); + } +} +.dnc-sheet { + display: flex; + flex-direction: column; + gap: 1rem; + padding: 1rem; +} +.sheet-card { + border: 2px solid #5b4634; + border-radius: 10px; + background: rgba(255, 248, 236, 0.92); + box-shadow: 0 6px 14px rgba(0, 0, 0, 0.22); + padding: 1rem; +} +.fvtt-donjon-et-cie .sheet-card h2, +.fvtt-donjon-et-cie .dnc-chat-card h2 { + margin: 0 0 0.75rem; + font-family: "IM Fell English SC", "Palatino Linotype", "Book Antiqua", Palatino, serif !important; + font-size: 1.15rem; + color: #8b2e17; + text-transform: uppercase; + letter-spacing: 0.04em; +} +.sheet-header { + display: grid; + grid-template-columns: 140px 1fr; + gap: 1rem; + align-items: start; +} +.sheet-header.compact { + grid-template-columns: 110px 1fr; + gap: 0.75rem; +} +.portrait { + position: relative; +} +.portrait img { + width: 100%; + aspect-ratio: 1; + object-fit: cover; + border-radius: 10px; + border: 3px solid #5b4634; + background: #fff; +} +.icon-button { + position: absolute; + right: 0.4rem; + bottom: 0.4rem; + border: 0; + border-radius: 999px; + background: #32261c; + color: #fff; + width: 2rem; + height: 2rem; +} +.identity-grid, +.identity-grid.two-columns { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 0.75rem; +} +.identity-grid.two-columns { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} +.dnc-employe-sheet .sheet-header.compact .identity-grid { + grid-template-columns: repeat(5, minmax(0, 1fr)); + gap: 0.4rem 0.75rem; +} +.dnc-employe-sheet .sheet-header.compact label { + gap: 0.25rem; +} +.dnc-employe-sheet .sheet-header.compact input[type="number"] { + max-width: 4.75rem; +} +.dnc-employe-sheet .sheet-header.compact .counter-field input[type="number"] { + max-width: 4rem; +} +.dnc-pnj-sheet .sheet-header.compact .identity-grid { + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 0.4rem 0.75rem; +} +.dnc-pnj-sheet .sheet-header.compact label { + gap: 0.25rem; +} +.dnc-pnj-sheet .sheet-header.compact input[type="number"] { + width: 4.5rem; + max-width: 4.5rem; +} +.dnc-pnj-sheet .sheet-header.compact .counter-field input[type="number"] { + width: 3.75rem; + max-width: 3.75rem; +} +.dnc-sheet label { + display: flex; + flex-direction: column; + gap: 0.4rem; +} +.dnc-sheet label > span { + font-size: 0.8rem; + text-transform: uppercase; + letter-spacing: 0.04em; + color: #6d5a4f; +} +.readonly-field { + display: flex; + flex-direction: column; + gap: 0.4rem; +} +.readonly-field > span { + font-size: 0.8rem; + text-transform: uppercase; + letter-spacing: 0.04em; + color: #6d5a4f; +} +.readonly-field p { + margin: 0; + border: 1px solid rgba(91, 70, 52, 0.55); + border-radius: 6px; + background: rgba(255, 255, 255, 0.65); + color: #221b18; + padding: 0.45rem 0.55rem; +} +.dnc-sheet input, +.dnc-sheet select, +.dnc-sheet textarea, +.dnc-dialog-form input, +.dnc-dialog-form select { + width: 100%; + border: 1px solid rgba(91, 70, 52, 0.55); + border-radius: 6px; + background: rgba(255, 255, 255, 0.9); + color: #221b18; + padding: 0.45rem 0.55rem; +} +.dnc-sheet textarea { + resize: vertical; + min-height: 4.5rem; +} +.sheet-columns { + display: grid; + grid-template-columns: minmax(250px, 320px) 1fr; + gap: 1rem; +} +.sheet-sections { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 1rem; +} +.compact-sections { + grid-template-columns: 1fr; +} +.counter-field { + display: flex; + align-items: center; + gap: 0.4rem; +} +.counter-field button, +.item-actions button, +.sheet-footer button, +.text-button, +.roll-button { + border: 1px solid #5b4634; + border-radius: 6px; + background: linear-gradient(180deg, #fdf9f2 0%, #e8d5ba 100%); + color: #221b18; + min-height: 2rem; + padding: 0.35rem 0.65rem; +} +.text-button { + white-space: nowrap; +} +.roll-button { + width: 2rem; + padding: 0; +} +.with-controls { + gap: 0.4rem; +} +.section-header { + display: flex; + justify-content: space-between; + align-items: center; + gap: 0.75rem; + margin-bottom: 0.75rem; +} +.empty-state { + margin: 0; + color: #6d5a4f; + font-style: italic; +} +.span-two { + grid-column: span 2; +} +.characteristic-list { + display: flex; + flex-direction: column; + gap: 0.4rem; +} +.characteristic-row { + display: grid; + grid-template-columns: 2rem 1fr 4rem; + gap: 0.4rem; + align-items: center; +} +.characteristic-label { + font-weight: 700; +} +.profile-counters { + display: grid; + grid-template-columns: 1fr; + gap: 0.75rem; +} +.profile-card-wide { + width: 100%; +} +.profile-layout { + display: grid; + grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr); + gap: 1rem; + align-items: start; +} +.profile-column { + display: flex; + flex-direction: column; + gap: 0.75rem; +} +.favor-card { + margin: 0.75rem 0; + padding: 0.75rem; + border: 1px dashed rgba(91, 70, 52, 0.55); + border-radius: 10px; + background: rgba(226, 208, 177, 0.35); +} +.favor-header h2 { + margin-bottom: 0.4rem; +} +.favor-help { + margin: 0 0 0.75rem; + color: #6d5a4f; + font-size: 0.82rem; +} +.favor-list { + display: grid; + gap: 0.4rem; +} +.favor-row { + display: grid; + grid-template-columns: minmax(0, 1fr) 4.5rem auto; + gap: 0.4rem; + align-items: end; +} +.favor-meta { + min-height: 2.3rem; + display: flex; + align-items: center; + justify-content: center; + border-radius: 6px; + background: rgba(255, 255, 255, 0.7); + border: 1px solid rgba(91, 70, 52, 0.35); + font-weight: 700; +} +.magic-layout { + align-items: start; + margin-bottom: 0.75rem; +} +.magic-layout .sheet-column { + display: flex; + flex-direction: column; + gap: 0.75rem; +} +.magic-resource-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); + gap: 0.75rem; + align-items: end; +} +.chaos-table-wrapper { + margin-top: 0.75rem; +} +.chaos-table-wrapper h3 { + margin: 0 0 0.4rem; + font-size: 0.95rem; +} +.chaos-table-caption { + margin: 0 0 0.4rem; + color: #6d5a4f; + font-size: 0.78rem; + font-style: italic; +} +.chaos-table { + width: 100%; + border-collapse: collapse; + font-size: 0.8rem; +} +.chaos-table th, +.chaos-table td { + padding: 0.4rem 0.45rem; + border: 1px solid rgba(91, 70, 52, 0.35); + vertical-align: top; +} +.chaos-table th { + text-align: left; + background: rgba(226, 208, 177, 0.55); +} +.sheet-tabs { + display: flex; + flex-wrap: wrap; + gap: 0.4rem; + margin: 1rem 0 0.75rem; + justify-content: center; +} +.sheet-tab { + border: 1px solid rgba(91, 70, 52, 0.8); + border-radius: 10px; + background: rgba(226, 208, 177, 0.55); + color: #221b18; + font-weight: 700; + padding: 0.4rem 0.75rem; +} +.sheet-tab.active { + background: #8b2e17; + border-color: #561d0e; + color: #fff; +} +.sheet-tab-panel { + display: none; +} +.sheet-tab-panel.active { + display: block; +} +.item-list { + display: flex; + flex-direction: column; + gap: 0.75rem; +} +.item-section.is-dragover { + border-color: #8b2e17; + box-shadow: 0 0 0 2px rgba(139, 46, 23, 0.2); +} +.item-dropzone { + border: 1px dashed rgba(91, 70, 52, 0.75); + border-radius: 10px; + padding: 0.75rem; + min-height: 3.25rem; + background: rgba(226, 208, 177, 0.45); + color: #6d5a4f; + display: flex; + align-items: center; + justify-content: center; + text-align: center; + font-size: 0.9rem; + font-weight: 600; +} +.item-dropzone.has-items { + padding: 0.4rem 0.75rem; + font-size: 0.8rem; +} +.item-section.is-dragover .item-dropzone { + border-color: #8b2e17; + background: rgba(139, 46, 23, 0.12); + color: #221b18; +} +.item { + display: grid; + grid-template-columns: 48px 1fr auto; + gap: 0.75rem; + align-items: start; + border-top: 1px dashed rgba(91, 70, 52, 0.45); + padding-top: 0.75rem; +} +.item:first-child { + border-top: 0; + padding-top: 0; +} +.item img { + width: 48px; + height: 48px; + object-fit: cover; + border-radius: 6px; + border: 1px solid #5b4634; + background: #fff; +} +.item-main p { + margin: 0.4rem 0 0; + color: #6d5a4f; +} +.item-title-row { + display: flex; + flex-wrap: wrap; + gap: 0.4rem; + align-items: center; +} +.item-meta { + border-radius: 999px; + background: #e2d0b1; + color: #221b18; + font-size: 0.75rem; + padding: 0.1rem 0.5rem; +} +.item-actions { + display: flex; + flex-wrap: wrap; + gap: 0.4rem; + justify-content: flex-end; +} +.pnj-layout .sheet-column { + display: flex; + flex-direction: column; + gap: 0.75rem; +} +.pnj-combat-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 0.75rem; + align-items: end; +} +.pnj-combat-grid .span-two { + grid-column: 1 / -1; +} +.application.fvtt-donjon-et-cie.item { + display: flex !important; + flex-direction: column; + padding-top: 0 !important; +} +.application.fvtt-donjon-et-cie.item > .window-header { + position: relative; + z-index: 2; + width: 100% !important; + flex: 0 0 auto; +} +.application.fvtt-donjon-et-cie.item > .window-content { + width: 100% !important; + flex: 1 1 auto; + overflow-y: auto !important; + overflow-x: hidden !important; +} +.application.fvtt-donjon-et-cie.item > .window-content > .dnc-sheet { + min-height: fit-content; +} +.dnc-item-sheet .identity-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} +.sheet-footer { + display: flex; + gap: 0.75rem; + justify-content: flex-end; +} +.dnc-dialog-form { + display: flex; + flex-direction: column; + gap: 0.75rem; +} +.dnc-roll-dialog, +.dnc-roll-dialog .window-content, +.dnc-dialog-form, +.dnc-dialog-form p, +.dnc-dialog-form label, +.dnc-dialog-form label > span { + color: #221b18; +} +.dnc-dialog-form p { + margin: 0; +} +.dnc-dialog-form label { + display: flex; + flex-direction: column; + gap: 0.4rem; + font-weight: 700; +} +.dnc-dialog-form label > span { + font-size: 0.82rem; + font-weight: 700; + letter-spacing: 0.04em; + text-transform: uppercase; +} +.dnc-roll-dialog .window-content { + background: linear-gradient(180deg, #f7efe0 0%, #e3d0b1 100%); +} +.dnc-chat-card { + position: relative; + border: 2px solid #5b4634; + border-radius: 16px; + background: linear-gradient(180deg, rgba(255, 255, 255, 0.78) 0%, rgba(245, 234, 210, 0.92) 100%), linear-gradient(135deg, #fdf6e7 0%, #e7d2ab 100%); + color: #221b18; + padding: 1rem; + box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.65); + overflow: hidden; +} +.chat-message .message-content .dnc-chat-card h2 { + margin: 0 !important; + font-size: 0.82rem !important; + line-height: 1.1 !important; + letter-spacing: 0.02em !important; +} +.dnc-chat-card::before { + content: ""; + position: absolute; + inset: 0; + border-radius: inherit; + pointer-events: none; + background: radial-gradient(circle at top right, rgba(255, 255, 255, 0.45), transparent 30%), linear-gradient(90deg, rgba(139, 46, 23, 0.14) 0, rgba(139, 46, 23, 0.14) 0.3rem, transparent 0.3rem); +} +.chat-card-header { + position: relative; + z-index: 1; + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: 0.75rem; + margin-bottom: 0.75rem; +} +.chat-card-heading { + min-width: 0; +} +.chat-card-kicker { + margin: 0 0 0.25rem; + font-size: 0.7rem; + font-weight: 700; + letter-spacing: 0.16em; + text-transform: uppercase; + color: rgba(139, 46, 23, 0.8); +} +.chat-card-subtitle { + margin: 0.2rem 0 0; + color: #6d5a4f; +} +.chat-card-seal, +.chat-card-total { + position: relative; + z-index: 1; + flex: 0 0 auto; +} +.chat-card-seal { + min-width: 3.4rem; + border-radius: 999px; + border: 1px solid rgba(91, 70, 52, 0.55); + background: rgba(255, 255, 255, 0.72); + padding: 0.4rem 0.7rem; + text-align: center; + font-size: 0.72rem; + font-weight: 800; + letter-spacing: 0.12em; +} +.chat-card-seal.success { + color: #122b17; +} +.chat-card-seal.failure { + color: #561d1d; +} +.chat-card-total { + min-width: 5.75rem; + border-radius: 14px; + border: 1px solid rgba(91, 70, 52, 0.45); + background: linear-gradient(180deg, rgba(255, 255, 255, 0.82) 0%, rgba(247, 232, 198, 0.95) 100%); + padding: 0.45rem 0.8rem; + text-align: center; +} +.chat-card-total span { + display: block; + font-size: 0.68rem; + font-weight: 700; + letter-spacing: 0.14em; + text-transform: uppercase; + color: #6d5a4f; +} +.chat-card-total strong { + display: block; + margin-top: 0.15rem; + font-size: 1.8rem; + line-height: 1; + color: #8b2e17; +} +.chat-pill-row { + position: relative; + z-index: 1; + display: flex; + flex-wrap: wrap; + gap: 0.4rem; + margin-bottom: 0.75rem; +} +.chat-pill { + border: 1px solid rgba(91, 70, 52, 0.55); + border-radius: 999px; + background: rgba(255, 255, 255, 0.66); + color: #221b18; + font-size: 0.78rem; + font-weight: 700; + padding: 0.2rem 0.7rem; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55); +} +.chat-pill.success { + background: rgba(46, 107, 58, 0.16); + color: #122b17; + border-color: rgba(46, 107, 58, 0.32); +} +.chat-pill.failure { + background: rgba(132, 44, 44, 0.16); + color: #561d1d; + border-color: rgba(132, 44, 44, 0.32); +} +.chat-keyline { + position: relative; + z-index: 1; + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 0.4rem; + margin-bottom: 0.75rem; +} +.chat-keyline-label { + font-size: 0.72rem; + font-weight: 700; + letter-spacing: 0.12em; + text-transform: uppercase; + color: #6d5a4f; +} +.roll-values { + display: flex; + gap: 0.4rem; + flex-wrap: wrap; + margin: 0; +} +.roll-values span { + border: 1px solid rgba(91, 70, 52, 0.45); + border-radius: 999px; + background: rgba(255, 255, 255, 0.72); + padding: 0.22rem 0.55rem; + font-weight: 700; +} +.chat-details { + position: relative; + z-index: 1; + margin: 0.75rem 0 0; + padding-left: 1.1rem; +} +.chat-details-ornate { + margin-top: 1rem; + padding-top: 0.75rem; + border-top: 1px solid rgba(91, 70, 52, 0.35); +} +.chat-details li + li { + margin-top: 0.25rem; +} +.chat-actions { + position: relative; + z-index: 1; + margin-top: 0.75rem; +} +.chat-action-button { + border: 1px solid #5b4634; + border-radius: 999px; + background: linear-gradient(180deg, #f9f0da 0%, #dcb772 100%); + color: #221b18; + min-height: 2rem; + padding: 0.45rem 0.9rem; + font-weight: 800; + letter-spacing: 0.04em; + box-shadow: 0 6px 14px rgba(0, 0, 0, 0.16); +} +.chat-action-button[disabled] { + opacity: 0.55; + cursor: not-allowed; + box-shadow: none; +} +.chat-actions-inline { + display: flex; + flex-wrap: wrap; + gap: 0.4rem; +} +.chat-targeting { + position: relative; + z-index: 1; + display: grid; + gap: 0.4rem; + margin-top: 0.4rem; +} +.chat-control { + display: grid; + gap: 0.2rem; +} +.chat-select { + min-height: 2rem; + border: 1px solid rgba(91, 70, 52, 0.55); + border-radius: 999px; + background: rgba(255, 255, 255, 0.82); + color: #221b18; + padding: 0.3rem 0.75rem; +} +.chat-formula, +.chat-note { + position: relative; + z-index: 1; + margin: 0 0 0.75rem; +} +.chat-formula { + display: inline-flex; + align-items: center; + min-height: 2rem; + padding: 0.25rem 0.7rem; + border-radius: 999px; + border: 1px solid rgba(91, 70, 52, 0.38); + background: rgba(255, 255, 255, 0.5); + font-family: "IM Fell English SC", "Palatino Linotype", "Book Antiqua", Palatino, serif; + color: #6d5a4f; +} +.chat-item-image { + width: 64px; + height: 64px; + object-fit: cover; + border-radius: 6px; + border: 1px solid #5b4634; +} +.chat-item-body { + position: relative; + z-index: 1; + display: grid; + grid-template-columns: 64px 1fr; + gap: 0.75rem; + align-items: start; + margin-bottom: 0.75rem; +} +.chat-item-content { + min-width: 0; +} +.chat-description { + position: relative; + z-index: 1; + margin-top: 0.75rem; + padding-top: 0.75rem; + border-top: 1px solid rgba(91, 70, 52, 0.35); +} +.warning { + color: #842c2c; + font-weight: 700; +} +.dnc-chat-card-roll { + background: linear-gradient(180deg, rgba(255, 255, 255, 0.78) 0%, rgba(236, 228, 205, 0.92) 100%), linear-gradient(135deg, #fcf8ee 0%, #e4d1af 100%); +} +.dnc-chat-card-damage { + padding: 0.75rem; + background: linear-gradient(180deg, rgba(255, 252, 247, 0.76) 0%, rgba(238, 213, 194, 0.92) 100%), linear-gradient(135deg, #fff4e8 0%, #d7a884 100%); +} +.dnc-chat-card-damage .chat-card-header, +.dnc-chat-card-damage .chat-pill-row, +.dnc-chat-card-damage .chat-keyline, +.dnc-chat-card-damage .chat-formula, +.dnc-chat-card-damage .chat-note { + margin-bottom: 0.4rem; +} +.dnc-chat-card-damage .chat-card-total { + min-width: 4.8rem; + padding: 0.35rem 0.65rem; +} +.dnc-chat-card-damage .chat-card-total strong { + font-size: 1.45rem; +} +.dnc-chat-card-damage .chat-formula { + min-height: 1.7rem; + padding: 0.15rem 0.6rem; + font-size: 0.82rem; +} +.dnc-chat-card-damage .chat-note { + font-size: 0.82rem; +} +.dnc-chat-card-damage-application .chat-pill.success { + background: rgba(46, 107, 58, 0.18); +} +.dnc-chat-card-usage { + background: linear-gradient(180deg, rgba(255, 255, 255, 0.76) 0%, rgba(222, 230, 214, 0.92) 100%), linear-gradient(135deg, #f6f6ef 0%, #bfcbb1 100%); +} +.dnc-chat-card-item { + background: linear-gradient(180deg, rgba(255, 255, 255, 0.8) 0%, rgba(223, 216, 201, 0.92) 100%), linear-gradient(135deg, #fef9ef 0%, #d1c4aa 100%); +} +.dnc-chat-card-initiative { + background: linear-gradient(180deg, rgba(255, 248, 236, 0.82) 0%, rgba(228, 208, 170, 0.94) 100%), linear-gradient(135deg, #fff8ec 0%, #d7bf85 100%); +} +.dnc-chat-card-spell { + background: linear-gradient(180deg, rgba(249, 246, 255, 0.8) 0%, rgba(222, 213, 244, 0.92) 100%), linear-gradient(135deg, #fcf8ff 0%, #b8abd9 100%); +} +.dnc-chat-card-chaos { + background: linear-gradient(180deg, rgba(255, 247, 247, 0.82) 0%, rgba(232, 198, 198, 0.94) 100%), linear-gradient(135deg, #fff6f2 0%, #d49494 100%); +} +.dnc-chat-card-favor { + background: linear-gradient(180deg, rgba(248, 251, 255, 0.8) 0%, rgba(205, 220, 238, 0.94) 100%), linear-gradient(135deg, #f7fbff 0%, #9fb8d7 100%); +} +.dnc-chat-card-spell .chat-actions + .chat-actions { + margin-top: 0.4rem; +} +.chat-chaos-result { + position: relative; + z-index: 1; + margin-bottom: 0.75rem; + padding: 0.4rem 0.75rem; + border-radius: 6px; + background: rgba(255, 255, 255, 0.45); + border: 1px solid rgba(91, 70, 52, 0.35); +} +.chat-chaos-result-title { + margin: 0 0 0.25rem; + font-weight: 800; +} +.initiative-header { + margin-bottom: 1rem; +} +.initiative-header p { + margin: 0.15rem 0 0; + color: #6d5a4f; +} +.initiative-total { + min-width: 5.5rem; + border: 2px solid rgba(139, 46, 23, 0.65); + border-radius: 10px; + background: rgba(255, 255, 255, 0.5); + padding: 0.45rem 0.75rem; + text-align: center; +} +.initiative-total-label, +.initiative-part-label { + display: block; + font-size: 0.72rem; + letter-spacing: 0.04em; + text-transform: uppercase; + color: #6d5a4f; +} +.initiative-total strong { + display: block; + font-size: 1.8rem; + line-height: 1; + color: #8b2e17; +} +.initiative-breakdown { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 0.4rem; + margin-bottom: 0.75rem; +} +.initiative-part { + min-width: 4.5rem; + border-radius: 6px; + background: rgba(255, 255, 255, 0.55); + border: 1px solid rgba(91, 70, 52, 0.4); + padding: 0.35rem 0.55rem; + text-align: center; +} +.initiative-part strong, +.initiative-operator { + font-size: 1.1rem; + font-weight: 700; +} +.initiative-formula { + margin: 0 0 0.75rem; + font-family: "IM Fell English SC", "Palatino Linotype", "Book Antiqua", Palatino, serif; + color: #6d5a4f; +} +.initiative-sync p { + margin: 0.4rem 0 0; +} +/*# sourceMappingURL=donjon-et-cie.css.map */ +/*# sourceMappingURL=donjon-et-cie.css.map */ diff --git a/styles/donjon-et-cie.css.map b/styles/donjon-et-cie.css.map new file mode 100644 index 0000000..e0cb8f2 --- /dev/null +++ b/styles/donjon-et-cie.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../variables.less","../base.less","../components.less","../actor-sheet.less","../item-sheet.less","../dialogs.less","../chat.less"],"names":[],"mappings":"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","file":"donjon-et-cie.css","sourcesContent":[]} \ No newline at end of file diff --git a/system.json b/system.json new file mode 100644 index 0000000..ec9457d --- /dev/null +++ b/system.json @@ -0,0 +1,127 @@ +{ + "id": "fvtt-donjon-et-cie", + "title": "Donjon & Cie", + "description": "Systeme FoundryVTT pour le jeu de role Donjon & Cie", + "version": "14.0.0", + "compatibility": { + "minimum": "13", + "verified": "14" + }, + "authors": [ + { + "name": "Copilot" + } + ], + "esmodules": [ + "modules/donjon-et-cie-main.mjs" + ], + "languages": [ + { + "lang": "fr", + "name": "Francais", + "path": "lang/fr.json" + } + ], + "styles": [ + "styles/donjon-et-cie.css" + ], + "packs": [ + { + "type": "Item", + "label": "Equipement", + "name": "equipment", + "path": "packs/equipment", + "system": "fvtt-donjon-et-cie", + "flags": {}, + "ownership": { + "PLAYER": "OBSERVER", + "ASSISTANT": "OWNER" + } + }, + { + "type": "RollTable", + "label": "Tables aléatoires", + "name": "random-tables", + "path": "packs/random-tables", + "system": "fvtt-donjon-et-cie", + "flags": {}, + "ownership": { + "PLAYER": "OBSERVER", + "ASSISTANT": "OWNER" + } + } + ], + "documentTypes": { + "Actor": { + "employe": { + "htmlFields": [ + "profil.objectifPersonnel", + "notes", + "gmnotes" + ] + }, + "pnj": { + "htmlFields": [ + "description", + "notes" + ] + } + }, + "Item": { + "trait": { + "htmlFields": [ + "description", + "notes" + ] + }, + "langue": { + "htmlFields": [ + "description", + "notes" + ] + }, + "capacite": { + "htmlFields": [ + "description", + "notes" + ] + }, + "sortilege": { + "htmlFields": [ + "description", + "notes" + ] + }, + "arme": { + "htmlFields": [ + "description", + "notes" + ] + }, + "armure": { + "htmlFields": [ + "description", + "notes" + ] + }, + "equipement": { + "htmlFields": [ + "description", + "notes" + ] + }, + "consommable": { + "htmlFields": [ + "description", + "notes" + ] + } + } + }, + "primaryTokenAttribute": "sante.pv.value", + "secondaryTokenAttribute": "profil.suspicion", + "grid": { + "distance": 5, + "units": "m" + } +} diff --git a/templates/actors/employe-sheet.hbs b/templates/actors/employe-sheet.hbs new file mode 100644 index 0000000..3146341 --- /dev/null +++ b/templates/actors/employe-sheet.hbs @@ -0,0 +1,416 @@ +

+
+
+ {{actor.name}} + +
+
+ + + + + + + + + +
+
+ + + +
+
+
+

Caracteristiques

+
+ {{#each characteristics}} +
+ + {{this.label}} + +
+ {{/each}} +
+
+ +
+
+

{{traitsSection.label}}

+ +
+
+ {{#if traitsSection.items.length}} + {{#each traitsSection.items}} +
+ {{this.name}} +
+
+ {{this.name}} + {{#if this.usageLabel}}{{this.usageLabel}}{{/if}} + {{#if this.protectionLabel}}{{this.protectionLabel}}{{/if}} +
+ {{#if this.system.effet}}

{{this.system.effet}}

{{/if}} + {{#if this.system.degats}}

Degats : {{this.system.degats}}

{{/if}} +
+
+ {{#if this.canRoll}} + + {{/if}} + {{#if this.canRollDamage}} + + {{/if}} + {{#if this.canUse}} + + {{/if}} + + + +
+
+ {{/each}} + {{/if}} +
+ Glissez-deposez ici les {{traitsSection.label}}. +
+
+
+
+ +
+ {{#each combatSections}} +
+
+

{{this.label}}

+ +
+
+ {{#if this.items.length}} + {{#each this.items}} +
+ {{this.name}} +
+
+ {{this.name}} + {{#if this.usageLabel}}{{this.usageLabel}}{{/if}} + {{#if this.protectionLabel}}{{this.protectionLabel}}{{/if}} +
+ {{#if this.system.effet}}

{{this.system.effet}}

{{/if}} + {{#if this.system.degats}}

Degats : {{this.system.degats}}

{{/if}} +
+
+ {{#if this.canRoll}} + + {{/if}} + {{#if this.canRollDamage}} + + {{/if}} + {{#if this.canUse}} + + {{/if}} + + + +
+
+ {{/each}} + {{/if}} +
+ Glissez-deposez ici les {{this.label}}. +
+
+
+ {{/each}} +
+
+ +
+
+
+
+

Ressources magiques

+
+
+ Rang +

{{magicResources.rank}}

+
+ +
+ Focus actif +

{{magicResources.focusDisplay}}

+
+ +
+
+

Table du Chaos

+

Aberration magique

+ + + + + + + + + + {{#each chaosTable}} + + + + + + {{/each}} + +
ΔResultatEffet
{{this.value}}{{this.title}}{{this.effect}}
+
+
+
+
+

{{capacitySection.label}}

+ +
+
+ {{#if capacitySection.items.length}} + {{#each capacitySection.items}} +
+ {{this.name}} +
+
+ {{this.name}} + {{#if this.usageLabel}}{{this.usageLabel}}{{/if}} + {{#if this.protectionLabel}}{{this.protectionLabel}}{{/if}} +
+ {{#if this.system.effet}}

{{this.system.effet}}

{{/if}} + {{#if this.system.degats}}

Degats : {{this.system.degats}}

{{/if}} +
+
+ {{#if this.canRoll}} + + {{/if}} + {{#if this.canRollDamage}} + + {{/if}} + {{#if this.canUse}} + + {{/if}} + + + +
+
+ {{/each}} + {{/if}} +
+ Glissez-deposez ici les {{capacitySection.label}}. +
+
+
+
+
+
+
+

{{spellSection.label}}

+ +
+
+ {{#if spellSection.items.length}} + {{#each spellSection.items}} +
+ {{this.name}} +
+
+ {{this.name}} + {{#if this.usageLabel}}{{this.usageLabel}}{{/if}} + {{#if this.protectionLabel}}{{this.protectionLabel}}{{/if}} +
+ {{#if this.system.effet}}

{{this.system.effet}}

{{/if}} + {{#if this.system.degats}}

Degats : {{this.system.degats}}

{{/if}} +
+
+ {{#if this.canRoll}} + + {{/if}} + {{#if this.canRollDamage}} + + {{/if}} + {{#if this.canUse}} + + {{/if}} + + + +
+
+ {{/each}} + {{/if}} +
+ Glissez-deposez ici les {{spellSection.label}}. +
+
+
+
+
+
+ +
+
+

Profil

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

Faveurs

+
+

Les coups de pouce se choisissent dans les fenetres de jet. Les services brulent automatiquement une faveur.

+
+ {{#each favorEntries}} +
+ +
{{this.deltaLabel}}
+ +
+ {{/each}} +
+
+ +
+
+
+ +
+ {{#each profileSections}} +
+
+

{{this.label}}

+ +
+
+ {{#if this.items.length}} + {{#each this.items}} +
+ {{this.name}} +
+
+ {{this.name}} + {{#if this.usageLabel}}{{this.usageLabel}}{{/if}} + {{#if this.protectionLabel}}{{this.protectionLabel}}{{/if}} +
+ {{#if this.system.effet}}

{{this.system.effet}}

{{/if}} + {{#if this.system.degats}}

Degats : {{this.system.degats}}

{{/if}} +
+
+ {{#if this.canRoll}} + + {{/if}} + {{#if this.canRollDamage}} + + {{/if}} + {{#if this.canUse}} + + {{/if}} + + + +
+
+ {{/each}} + {{/if}} +
+ Glissez-deposez ici les {{this.label}}. +
+
+
+ {{/each}} +
+
+
diff --git a/templates/actors/pnj-sheet.hbs b/templates/actors/pnj-sheet.hbs new file mode 100644 index 0000000..9a05d73 --- /dev/null +++ b/templates/actors/pnj-sheet.hbs @@ -0,0 +1,184 @@ +
+
+
+ {{actor.name}} + +
+
+ + + + + + + +
+
+ +
+
+
+

Combat

+
+ +
+ Protection stockee +

{{storedArmor}}

+
+ +
+ Valeurs +

ARM {{armorDisplay}} · COU {{courageDisplay}}

+
+ + + +
+
+ +
+

Description

+ +
+
+ +
+
+
+

{{spellSection.label}}

+ +
+
+ {{#if spellSection.items.length}} + {{#each spellSection.items}} +
+ {{this.name}} +
+
+ {{this.name}} + {{#if this.usageLabel}}{{this.usageLabel}}{{/if}} +
+ {{#if this.system.effet}}

{{this.system.effet}}

{{/if}} + {{#if this.system.degats}}

Degats : {{this.system.degats}}

{{/if}} +
+
+ {{#if this.canRoll}} + + {{/if}} + {{#if this.canRollDamage}} + + {{/if}} + {{#if this.canUse}} + + {{/if}} + + + +
+
+ {{/each}} + {{/if}} +
+ Glissez-deposez ici les {{spellSection.label}}. +
+
+
+ +
+
+

{{capacitySection.label}}

+ +
+
+ {{#if capacitySection.items.length}} + {{#each capacitySection.items}} +
+ {{this.name}} +
+
+ {{this.name}} + {{#if this.usageLabel}}{{this.usageLabel}}{{/if}} +
+ {{#if this.system.effet}}

{{this.system.effet}}

{{/if}} + {{#if this.system.description}}

{{this.system.description}}

{{/if}} +
+
+ {{#if this.canRoll}} + + {{/if}} + + + +
+
+ {{/each}} + {{/if}} +
+ Glissez-deposez ici les {{capacitySection.label}}. +
+
+
+ +
+

Notes

+ +
+
+
+
diff --git a/templates/chat/chaos-card.hbs b/templates/chat/chaos-card.hbs new file mode 100644 index 0000000..fdb9b35 --- /dev/null +++ b/templates/chat/chaos-card.hbs @@ -0,0 +1,30 @@ +
+
+
+

Chaos

+

{{title}}

+

La magie opere malgre l'echec ; le MJ determine les consequences.

+
+
+ Jet + {{value}} +
+
+
+ Sort maintenu + Avant {{before}} + Apres {{after}} +
+ {{#if chaosEntry}} +
+

{{value}} · {{chaosEntry.title}}

+

{{chaosEntry.effect}}

+
+ {{/if}} + {{#if degraded}} +

Le de du Chaos descend d'un cran.

+ {{/if}} + {{#if exhausted}} +

Le de du Chaos est trop faible pour etre reutilise dans le Donjon.

+ {{/if}} +
diff --git a/templates/chat/damage-application-card.hbs b/templates/chat/damage-application-card.hbs new file mode 100644 index 0000000..b900950 --- /dev/null +++ b/templates/chat/damage-application-card.hbs @@ -0,0 +1,29 @@ +
+
+
+

Application

+

{{title}}

+

{{subtitle}}

+
+
+ PV + {{total}} +
+
+
+ Brut {{incoming}} + {{#if useArmor}}{{armorLabel}} {{armorAbsorbed}}{{/if}} + Encaisse {{total}} +
+ {{#if sourceLabel}}

Source : {{sourceLabel}}

{{/if}} + {{#if useArmor}} +

+ {{#if armorAvailable}} + {{armorLabel}} : {{armorBefore}} -> {{armorAfter}} + {{else}} + Armure : aucune protection enregistrée + {{/if}} +

+ {{/if}} +

PV : {{pvBefore}} -> {{pvAfter}} / {{pvMax}}

+
diff --git a/templates/chat/damage-card.hbs b/templates/chat/damage-card.hbs new file mode 100644 index 0000000..0834439 --- /dev/null +++ b/templates/chat/damage-card.hbs @@ -0,0 +1,48 @@ +
+
+
+

Impact

+

{{title}}

+ {{#if subtitle}}

{{subtitle}}

{{/if}} +
+
+ Total + {{total}} +
+
+
+ {{#if modeLabel}}{{modeLabel}}{{/if}} + Dé {{keptDieLabel}} + {{#if bonus}}Bonus +{{bonus}}{{/if}} +
+

{{formula}}

+ {{#if rollDieLabels.[1]}} +
+ Dés +

{{#each rollDieLabels}}{{this}}{{/each}}

+
+ {{/if}} +

Base : {{baseDamage}}{{#if bonus}} · Bonus : +{{bonus}}{{/if}}

+
+ +
+ + +
+
+
diff --git a/templates/chat/favor-card.hbs b/templates/chat/favor-card.hbs new file mode 100644 index 0000000..302ffee --- /dev/null +++ b/templates/chat/favor-card.hbs @@ -0,0 +1,17 @@ +
+
+
+

Reseau

+

{{title}}

+ {{#if subtitle}}

{{subtitle}}

{{/if}} +
+
+ {{kindLabel}} +
+
+
+ Avant {{before}} + Apres {{after}} +
+

{{note}}

+
diff --git a/templates/chat/hit-dice-card.hbs b/templates/chat/hit-dice-card.hbs new file mode 100644 index 0000000..d6fc110 --- /dev/null +++ b/templates/chat/hit-dice-card.hbs @@ -0,0 +1,23 @@ +
+
+
+

Vitalite

+

{{title}}

+

{{actorName}}

+
+
+ Total + {{total}} +
+
+
+ DV {{formula}} +
+

{{formula}}

+ {{#if dieValues.length}} +
+ Des +

{{#each dieValues}}{{this}}{{/each}}

+
+ {{/if}} +
diff --git a/templates/chat/initiative-card.hbs b/templates/chat/initiative-card.hbs new file mode 100644 index 0000000..f556e91 --- /dev/null +++ b/templates/chat/initiative-card.hbs @@ -0,0 +1,43 @@ +
+
+
+

Ordre de marche

+

{{title}}

+

{{actorName}}

+ {{#if modeLabel}}

{{modeLabel}}

{{/if}} +
+
+ Total + {{total}} +
+
+ +
+
+ d20 + {{die}} +
+
+
+
+ DEX + {{dex}} +
+
+
+
+ Bonus + {{bonus}} +
+
+ +

{{formula}}

+ {{#if dieValues.[1]}} +

Lancers : {{#each dieValues}}{{this}}{{/each}}

+ {{/if}} + + {{#if syncedCombat}} +
+ Combat synchronise +

{{syncedCombat.name}} · rang {{syncedCombat.rank}} / {{syncedCombat.total}}

+
+ {{/if}} +
diff --git a/templates/chat/item-card.hbs b/templates/chat/item-card.hbs new file mode 100644 index 0000000..e700e7c --- /dev/null +++ b/templates/chat/item-card.hbs @@ -0,0 +1,20 @@ +
+
+
+

Objet

+

{{item.name}}

+

{{item.type}}

+
+
+
+ {{#if item.img}}{{item.name}}{{/if}} +
+
+ {{#if usageLabel}}De d'usage {{usageLabel}}{{/if}} + {{#if item.system.degats}}Degats {{item.system.degats}}{{/if}} +
+ {{#if item.system.effet}}

Effet : {{item.system.effet}}

{{/if}} +
+
+ {{#if item.system.description}}
{{{item.system.description}}}
{{/if}} +
diff --git a/templates/chat/roll-card.hbs b/templates/chat/roll-card.hbs new file mode 100644 index 0000000..b1549cd --- /dev/null +++ b/templates/chat/roll-card.hbs @@ -0,0 +1,38 @@ +
+
+
+

Resolution

+

{{title}}

+ {{#if subtitle}}

{{subtitle}}

{{/if}} +
+
+ {{#if success}}OK{{else}}KO{{/if}} +
+
+
+ {{#if success}}Reussite{{else}}Echec{{/if}} + {{#if modeLabel}}{{modeLabel}}{{/if}} + {{#if favorLabel}}Faveur {{favorLabel}}{{/if}} + {{#if targetPillLabel}}{{targetPillLabel}} {{targetPillValue}}{{else}}Cible {{target}}{{/if}} + {{#if keptPillLabel}}{{keptPillLabel}} {{keptPillValue}}{{else}}Garde {{kept}}{{/if}} +
+
+ Lancers +

{{#each values}}{{this}}{{/each}}

+
+ {{#if favorNote}} +

Faveur : {{favorNote}}

+ {{/if}} + {{#if showDamageButton}} +
+ +
+ {{/if}} +
    + {{#each details}} +
  • {{this.label}} : {{this.value}}
  • + {{/each}} +
+
diff --git a/templates/chat/spell-card.hbs b/templates/chat/spell-card.hbs new file mode 100644 index 0000000..0d497ac --- /dev/null +++ b/templates/chat/spell-card.hbs @@ -0,0 +1,72 @@ +
+
+
+

Magie

+

{{title}}

+ {{#if subtitle}}

{{subtitle}}

{{/if}} +
+
+ {{#if success}}OK{{else}}KO{{/if}} +
+
+
+ {{#if success}}Reussite{{else}}Echec{{/if}} + {{#if modeLabel}}{{modeLabel}}{{/if}} + {{#if favorLabel}}Faveur {{favorLabel}}{{/if}} + {{targetPillLabel}} {{targetPillValue}} + Jet {{keptPillValue}} +
+
+ Lancers +

{{#each values}}{{this}}{{/each}}

+
+ {{#if autoDisadvantage}} +

+ Desavantage automatique : + {{#if autoDisadvantageCanceled}} + le cout du sort depasse le rang du lanceur, mais une faveur l'a annule. + {{else}} + le cout du sort depasse le rang du lanceur. + {{/if}} +

+ {{/if}} + {{#if favorNote}} +

Faveur : {{favorNote}}

+ {{/if}} + {{#if focusValue}} +

+ Focus : {{focusValue}} depuis {{focusBeforeLabel}} + {{#if focusSpent}} · {{focusSpent}} utilise{{/if}} + · {{focusRemaining}} restant + {{#if focusDegraded}} · le focus descend a {{focusAfterLabel}}{{/if}} + {{#if focusRolled}} · premier sort de la scene{{/if}} +

+ {{else}} + {{#if focusRolled}} +

Focus : aucun apport pour cette scene.

+ {{/if}} + {{/if}} +

PV depenses : {{spentPv}} · PV restants : {{remainingPv}}

+ {{#if specialNote}} +

{{specialNote}}

+ {{/if}} + {{#if showDamageButton}} +
+ +
+ {{/if}} + {{#if showChaosButton}} +
+ +
+ {{/if}} +
    + {{#each details}} +
  • {{this.label}} : {{this.value}}
  • + {{/each}} +
+
diff --git a/templates/chat/usage-card.hbs b/templates/chat/usage-card.hbs new file mode 100644 index 0000000..b5c8da6 --- /dev/null +++ b/templates/chat/usage-card.hbs @@ -0,0 +1,26 @@ +
+
+
+

Usure

+

{{title}}

+
+
+ {{#if degraded}}-1{{else}}STABLE{{/if}} +
+
+
+ {{#if modeLabel}}{{modeLabel}}{{/if}} + Resultat {{value}} + Avant {{before}} + Apres {{after}} +
+ {{#if values.[1]}} +
+ Lancers +

{{#each values}}{{this}}{{/each}}

+
+ {{/if}} + {{#if protectionStored}}

Protection stockee pour ce combat : {{protectionStored}}.

{{/if}} + {{#if degraded}}

La ressource s'amenuise.

{{else}}

La ressource tient bon.

{{/if}} + {{#if exhausted}}

La ressource est epuisee.

{{/if}} +
diff --git a/templates/dialogs/characteristic-roll.hbs b/templates/dialogs/characteristic-roll.hbs new file mode 100644 index 0000000..c16bfec --- /dev/null +++ b/templates/dialogs/characteristic-roll.hbs @@ -0,0 +1,20 @@ +
+

{{actorName}} effectue un jet de {{characteristic.label}}.

+ + {{#if hasFavorOptions}} + + {{/if}} +
diff --git a/templates/dialogs/damage-roll.hbs b/templates/dialogs/damage-roll.hbs new file mode 100644 index 0000000..c66edbb --- /dev/null +++ b/templates/dialogs/damage-roll.hbs @@ -0,0 +1,12 @@ +
+

{{item.name}} inflige {{item.system.degats}}.

+

Bonus de degats de l'acteur : {{actorBonus}}

+ +
diff --git a/templates/dialogs/initiative-roll.hbs b/templates/dialogs/initiative-roll.hbs new file mode 100644 index 0000000..2aed21d --- /dev/null +++ b/templates/dialogs/initiative-roll.hbs @@ -0,0 +1,12 @@ +
+

{{actorName}} lance l'initiative.

+

DEX actuelle : {{dex}}, bonus de fiche : {{initiativeBonus}}

+ +
diff --git a/templates/dialogs/spell-roll.hbs b/templates/dialogs/spell-roll.hbs new file mode 100644 index 0000000..68d5c27 --- /dev/null +++ b/templates/dialogs/spell-roll.hbs @@ -0,0 +1,47 @@ +
+

{{actorName}} lance {{item.name}}.

+ + + + + + + + {{#if hasFavorOptions}} + + {{/if}} + {{#if autoDisadvantage}} +

Le cout depasse le rang du lanceur : le jet se fera automatiquement avec desavantage.

+ {{/if}} +
diff --git a/templates/dialogs/usage-roll.hbs b/templates/dialogs/usage-roll.hbs new file mode 100644 index 0000000..17d87bd --- /dev/null +++ b/templates/dialogs/usage-roll.hbs @@ -0,0 +1,12 @@ +
+

Utiliser {{item.name}} et lancer son de d'usage actuel.

+

Valeur actuelle : Δ{{item.system.delta}}

+ +
diff --git a/templates/dialogs/weapon-roll.hbs b/templates/dialogs/weapon-roll.hbs new file mode 100644 index 0000000..3553adf --- /dev/null +++ b/templates/dialogs/weapon-roll.hbs @@ -0,0 +1,21 @@ +
+

{{actorName}} attaque avec {{item.name}}.

+

Caracteristique utilisee : {{characteristicLabel}} ({{characteristicValue}}).

+ + {{#if hasFavorOptions}} + + {{/if}} +
diff --git a/templates/items/item-sheet.hbs b/templates/items/item-sheet.hbs new file mode 100644 index 0000000..8586237 --- /dev/null +++ b/templates/items/item-sheet.hbs @@ -0,0 +1,151 @@ +
+
+
+ {{item.name}} + +
+
+ + {{#if isWeapon}} + +
+ Caracteristique +

{{weaponCharacteristicLabel}}

+
+ + + + {{/if}} + + {{#if isArmor}} + +
+ Protection stockee +

{{armorProtectionDisplay}}

+
+ + {{/if}} + + {{#if isConsumable}} + + + + {{/if}} + + {{#if isEquipment}} + + + {{/if}} + + {{#if isSpell}} + + + + + + + + {{/if}} + + {{#if isCapacity}} + + + {{/if}} + + {{#if isLanguage}} + + {{/if}} + + {{#if isTrait}} + + {{/if}} +
+
+ +
+

Description

+ +
+ +
+

Notes

+ +
+ + +