Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8fb27c2e82 | |||
| 98cf0bf8fd | |||
| 7d218f4a0a |
@@ -27,6 +27,17 @@ jobs:
|
|||||||
manifest: https://www.uberwald.me/gitea/uberwald/fvtt-donjon-et-cie/releases/download/latest/system.json
|
manifest: https://www.uberwald.me/gitea/uberwald/fvtt-donjon-et-cie/releases/download/latest/system.json
|
||||||
download: https://www.uberwald.me/gitea/${{ gitea.repository }}/releases/download/${{ github.event.release.tag_name }}/fvtt-donjon-et-cie.zip
|
download: https://www.uberwald.me/gitea/${{ gitea.repository }}/releases/download/${{ github.event.release.tag_name }}/fvtt-donjon-et-cie.zip
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: https://github.com/actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 24
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Build system and pack compendiums
|
||||||
|
run: npm run build
|
||||||
|
|
||||||
- run: |
|
- run: |
|
||||||
apt update -y
|
apt update -y
|
||||||
apt install -y zip
|
apt install -y zip
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 547 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 536 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 436 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 450 KiB |
+46
-1
@@ -28,6 +28,7 @@
|
|||||||
"DNC.Chat.Kicker.Magic": "Magie",
|
"DNC.Chat.Kicker.Magic": "Magie",
|
||||||
"DNC.Chat.Kicker.Wear": "Usure",
|
"DNC.Chat.Kicker.Wear": "Usure",
|
||||||
"DNC.Chat.Kicker.Network": "Reseau",
|
"DNC.Chat.Kicker.Network": "Reseau",
|
||||||
|
"DNC.Chat.Kicker.Logistics": "Logistique",
|
||||||
"DNC.Chat.Kicker.Initiative": "Ordre de marche",
|
"DNC.Chat.Kicker.Initiative": "Ordre de marche",
|
||||||
"DNC.Chat.Success": "Reussite",
|
"DNC.Chat.Success": "Reussite",
|
||||||
"DNC.Chat.Failure": "Echec",
|
"DNC.Chat.Failure": "Echec",
|
||||||
@@ -102,8 +103,52 @@
|
|||||||
"DNC.Warn.SpellInsufficientResources": "Le lanceur ne dispose pas d'assez de PV et de focus pour payer ce sort.",
|
"DNC.Warn.SpellInsufficientResources": "Le lanceur ne dispose pas d'assez de PV et de focus pour payer ce sort.",
|
||||||
"DNC.Warn.ChaosUnavailable": "Le Chaos n'est pas disponible pour ce sort.",
|
"DNC.Warn.ChaosUnavailable": "Le Chaos n'est pas disponible pour ce sort.",
|
||||||
"DNC.Warn.TrainingExhausted": "Cet entrainement est epuise pour aujourd'hui. Reinitialisez son delta quotidien pour le lendemain.",
|
"DNC.Warn.TrainingExhausted": "Cet entrainement est epuise pour aujourd'hui. Reinitialisez son delta quotidien pour le lendemain.",
|
||||||
|
"DNC.Macro.MissionPack.Title": "Paquetage de debut de mission",
|
||||||
|
"DNC.Macro.MissionPack.ItemsAdded": "Objets ajoutes",
|
||||||
|
"DNC.Macro.MissionPack.ItemsMissing": "Objets manquants",
|
||||||
|
"DNC.Macro.MissionPack.Missing": "Introuvables",
|
||||||
|
"DNC.Macro.MissionPack.CompleteChatSummary": "L'integralite du paquetage a ete ajoutee a la fiche.",
|
||||||
|
"DNC.Macro.MissionPack.PartialChatSummary": "Les elements trouves du paquetage ont ete ajoutes a la fiche.",
|
||||||
|
"DNC.Macro.MissionPack.NoResult": "Aucun resultat exploitable",
|
||||||
|
"DNC.Macro.MissionPack.TableMissing": "Table introuvable : {table}",
|
||||||
|
"DNC.Macro.MissionPack.WarnNoActor": "Impossible de determiner l'employe cible. Selectionnez un token ou attribuez un personnage a l'utilisateur.",
|
||||||
|
"DNC.Macro.MissionPack.WarnMultipleTokens": "Selectionnez un seul token pour attribuer le paquetage.",
|
||||||
|
"DNC.Macro.MissionPack.WarnInvalidActor": "Le paquetage de mission ne peut etre attribue qu'a un employe.",
|
||||||
|
"DNC.Macro.MissionPack.WarnNoEmployees": "Aucun employe n'est disponible pour recevoir un paquetage.",
|
||||||
|
"DNC.Macro.MissionPack.WarnGMOnly": "Cette interface de paquetage est reservee au MJ.",
|
||||||
|
"DNC.Macro.MissionPack.WarnNothingAdded": "Aucun objet du paquetage n'a pu etre ajoute a la fiche.",
|
||||||
|
"DNC.Macro.MissionPack.Success": "{actor} recoit {count} objet(s) de paquetage.",
|
||||||
|
"DNC.Macro.MissionPack.Partial": "{actor} recoit {count} objet(s), mais {missing} entree(s) du paquetage sont introuvables.",
|
||||||
|
"DNC.Macro.MissionPack.DialogTitle": "Paquetage de mission",
|
||||||
|
"DNC.Macro.MissionPack.DialogIntro": "Selectionnez l'employe qui recevra le paquetage de debut de mission, puis lancez le tirage.",
|
||||||
|
"DNC.Macro.MissionPack.DialogActor": "Employe",
|
||||||
|
"DNC.Macro.MissionPack.DialogAction": "Generer le paquetage",
|
||||||
|
"DNC.Macro.MissionPack.SidebarButton": "Paquetage",
|
||||||
|
"DNC.Macro.MissionPack.melee": "Arme de corps a corps",
|
||||||
|
"DNC.Macro.MissionPack.ranged": "Arme a distance",
|
||||||
|
"DNC.Macro.MissionPack.armor": "Armure",
|
||||||
|
"DNC.Macro.MissionPack.misc": "Encas et equipement divers",
|
||||||
|
"DNC.Welcome.Kicker": "Accueil",
|
||||||
|
"DNC.Welcome.Title": "Bienvenue dans Donjon & Cie",
|
||||||
|
"DNC.Welcome.Subtitle": "Systeme FoundryVTT · version {version}",
|
||||||
|
"DNC.Welcome.Seal": "GUIDE",
|
||||||
|
"DNC.Welcome.PillSheets": "Fiches Application V2",
|
||||||
|
"DNC.Welcome.PillChat": "Jets et cartes de chat",
|
||||||
|
"DNC.Welcome.PillHelp": "Aide integree",
|
||||||
|
"DNC.Welcome.Intro": "Le systeme est pret : vous pouvez creer des employes, gerer les PNJ, lancer les jets et utiliser les outils MJ directement depuis l'interface.",
|
||||||
|
"DNC.Welcome.BulletActors": "Les fiches Employe et PNJ couvrent les caracteristiques, ressources, objets et actions de jeu courantes.",
|
||||||
|
"DNC.Welcome.BulletItems": "Les objets peuvent etre lances, postes dans le chat et utilises avec leur de d'usure quand c'est pertinent.",
|
||||||
|
"DNC.Welcome.BulletMissionPack": "Le bouton Paquetage du repertoire des acteurs permet au MJ de generer rapidement l'equipement de debut de mission.",
|
||||||
|
"DNC.Welcome.HelpLabel": "Aide du systeme :",
|
||||||
|
"DNC.Welcome.HelpLinkLabel": "ouvrir le journal d'aide",
|
||||||
|
"DNC.Welcome.HelpFallback": "le compendium d'aide systeme est disponible dans les Compendiums.",
|
||||||
|
"DNC.Welcome.CreditsLabel": "Credits :",
|
||||||
|
"DNC.Welcome.CreditsText": "systeme FoundryVTT par LeRatierBretonnien. Donjon & Cie est un jeu de role edite par John Doe.",
|
||||||
|
"DNC.Welcome.OfficialLabel": "Page officielle :",
|
||||||
|
"DNC.Welcome.OfficialLinkText": "johndoe-rpg.com/catalogue/donjon-cie/",
|
||||||
|
"DNC.Welcome.Footer": "Commencez par ouvrir le journal d'aide si vous voulez un tour rapide des ecrans et des workflows du systeme.",
|
||||||
"DNC.Sheet.Create": "Creer",
|
"DNC.Sheet.Create": "Creer",
|
||||||
"DNC.Sheet.Delete": "Supprimer",
|
"DNC.Sheet.Delete": "Supprimer",
|
||||||
"DNC.Sheet.Edit": "Editer",
|
"DNC.Sheet.Edit": "Editer",
|
||||||
"DNC.Sheet.Post": "Poster dans le chat"
|
"DNC.Sheet.Post": "Poster dans le chat"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -378,6 +378,30 @@
|
|||||||
linear-gradient(135deg, #f7fbff 0%, #9fb8d7 100%);
|
linear-gradient(135deg, #f7fbff 0%, #9fb8d7 100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dnc-chat-card-welcome {
|
||||||
|
border-color: fade(@color-accent, 34%);
|
||||||
|
background:
|
||||||
|
linear-gradient(180deg, rgba(255, 250, 240, 0.84) 0%, rgba(239, 219, 179, 0.94) 100%),
|
||||||
|
linear-gradient(135deg, #fffaf0 0%, #dcb772 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.chat-welcome-intro {
|
||||||
|
font-size: 0.82rem;
|
||||||
|
line-height: 1.45;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chat-welcome-link {
|
||||||
|
margin-top: @spacing-md;
|
||||||
|
padding: 0.6rem 0.8rem;
|
||||||
|
border: 1px solid fade(@color-accent, 24%);
|
||||||
|
border-radius: 12px;
|
||||||
|
background: fade(@color-accent, 8%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.chat-welcome-link a.content-link {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
.dnc-chat-card-spell .chat-actions + .chat-actions {
|
.dnc-chat-card-spell .chat-actions + .chat-actions {
|
||||||
margin-top: @spacing-sm;
|
margin-top: @spacing-sm;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,340 @@
|
|||||||
|
/**
|
||||||
|
* Donjon & Cie - Systeme FoundryVTT
|
||||||
|
*
|
||||||
|
* Donjon & Cie est un jeu de role edite par John Doe.
|
||||||
|
* Ce systeme FoundryVTT est une implementation independante et n'est pas
|
||||||
|
* affilie a John Doe.
|
||||||
|
*
|
||||||
|
* @author LeRatierBretonnien
|
||||||
|
* @copyright 2025–2026 LeRatierBretonnien
|
||||||
|
* @license CC BY-NC-SA 4.0 – https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { DonjonEtCieUtility } from "./donjon-et-cie-utility.mjs";
|
||||||
|
|
||||||
|
export class DonjonEtCieMacros {
|
||||||
|
static MISSION_PACK_TABLES = [
|
||||||
|
{ key: "melee", name: "Armes de corps a corps", multiple: false },
|
||||||
|
{ key: "ranged", name: "Armes a distance", multiple: false },
|
||||||
|
{ key: "armor", name: "Armures", multiple: false },
|
||||||
|
{ key: "misc", name: "Encas et equipement divers", multiple: true }
|
||||||
|
];
|
||||||
|
|
||||||
|
static #normalizeName(value) {
|
||||||
|
return String(value ?? "")
|
||||||
|
.normalize("NFD")
|
||||||
|
.replace(/\p{Diacritic}/gu, "")
|
||||||
|
.replace(/['’]/g, " ")
|
||||||
|
.replace(/\s+/g, " ")
|
||||||
|
.trim()
|
||||||
|
.toLowerCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
static #getMissionPackLabel(key) {
|
||||||
|
return game.i18n.localize(`DNC.Macro.MissionPack.${key}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
static #getDefaultMissionPackActorId(actors) {
|
||||||
|
const controlledActor = canvas?.tokens?.controlled?.[0]?.actor ?? null;
|
||||||
|
if (controlledActor?.type === "employe") return controlledActor.id;
|
||||||
|
return actors[0]?.id ?? "";
|
||||||
|
}
|
||||||
|
|
||||||
|
static #getMissionPackActorOptions() {
|
||||||
|
return game.actors
|
||||||
|
.filter((actor) => actor.type === "employe")
|
||||||
|
.sort((a, b) => a.name.localeCompare(b.name, "fr", { sensitivity: "base" }))
|
||||||
|
.map((actor) => ({
|
||||||
|
value: actor.id,
|
||||||
|
label: actor.name
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
static async #resolveMissionPackActor(target = null) {
|
||||||
|
if (target?.documentName === "Actor") return target;
|
||||||
|
if (target?.actor?.documentName === "Actor") return target.actor;
|
||||||
|
if (typeof target === "string" && target) {
|
||||||
|
const document = await fromUuid(target);
|
||||||
|
if (document?.documentName === "Actor") return document;
|
||||||
|
if (document?.actor?.documentName === "Actor") return document.actor;
|
||||||
|
}
|
||||||
|
|
||||||
|
const controlledTokens = canvas?.tokens?.controlled ?? [];
|
||||||
|
if (controlledTokens.length === 1 && controlledTokens[0]?.actor) return controlledTokens[0].actor;
|
||||||
|
if (controlledTokens.length > 1) {
|
||||||
|
ui.notifications.warn(game.i18n.localize("DNC.Macro.MissionPack.WarnMultipleTokens"));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return game.user.character ?? null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static async #getRandomTableDocuments() {
|
||||||
|
const worldTables = game.tables?.contents ?? [];
|
||||||
|
if (worldTables.length) return worldTables;
|
||||||
|
|
||||||
|
const pack = game.packs.get("fvtt-donjon-et-cie.random-tables");
|
||||||
|
return pack ? pack.getDocuments() : [];
|
||||||
|
}
|
||||||
|
|
||||||
|
static async #findRollTableByName(name) {
|
||||||
|
const normalizedName = this.#normalizeName(name);
|
||||||
|
const worldTable = game.tables.find((table) => this.#normalizeName(table.name) === normalizedName);
|
||||||
|
if (worldTable) return worldTable;
|
||||||
|
|
||||||
|
const packTables = await this.#getRandomTableDocuments();
|
||||||
|
return packTables.find((table) => this.#normalizeName(table.name) === normalizedName) ?? null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static async #getEquipmentDocuments() {
|
||||||
|
const pack = game.packs.get("fvtt-donjon-et-cie.equipment");
|
||||||
|
const packDocuments = pack ? await pack.getDocuments() : [];
|
||||||
|
return [...(game.items?.contents ?? []), ...packDocuments];
|
||||||
|
}
|
||||||
|
|
||||||
|
static async #findItemByName(name) {
|
||||||
|
const normalizedName = this.#normalizeName(name);
|
||||||
|
const documents = await this.#getEquipmentDocuments();
|
||||||
|
return documents.find((item) => this.#normalizeName(item.name) === normalizedName) ?? null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static #extractUuidTargets(text) {
|
||||||
|
const matches = [...String(text ?? "").matchAll(/@UUID\[([^\]]+)\](?:\{([^}]+)\})?/g)];
|
||||||
|
return matches.map((match) => ({
|
||||||
|
uuid: match[1],
|
||||||
|
label: match[2] ?? ""
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
static #extractPlainTextEntries(text) {
|
||||||
|
const rawText = String(text ?? "")
|
||||||
|
.replace(/<[^>]+>/g, " ")
|
||||||
|
.replace(/\s+/g, " ")
|
||||||
|
.trim();
|
||||||
|
|
||||||
|
if (!rawText) return [];
|
||||||
|
|
||||||
|
return rawText
|
||||||
|
.split(",")
|
||||||
|
.map((entry) => entry.trim())
|
||||||
|
.filter(Boolean)
|
||||||
|
.filter((entry) => !/^dotation\s+\d+$/i.test(entry));
|
||||||
|
}
|
||||||
|
|
||||||
|
static async #resolveTableResultEntries(result, { multiple = false } = {}) {
|
||||||
|
if (!result) {
|
||||||
|
return {
|
||||||
|
display: game.i18n.localize("DNC.Macro.MissionPack.NoResult"),
|
||||||
|
entries: []
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result.type === "document" && result.documentCollection && result.documentId) {
|
||||||
|
const uuid = result.documentCollection.includes(".")
|
||||||
|
? `Compendium.${result.documentCollection}.Item.${result.documentId}`
|
||||||
|
: `Item.${result.documentId}`;
|
||||||
|
const document = await fromUuid(uuid);
|
||||||
|
const label = document?.name ?? result.text ?? "";
|
||||||
|
return {
|
||||||
|
display: label,
|
||||||
|
entries: label ? [{ name: label, document }] : []
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const uuidTargets = this.#extractUuidTargets(result.text);
|
||||||
|
if (uuidTargets.length) {
|
||||||
|
const entries = [];
|
||||||
|
for (const target of uuidTargets) {
|
||||||
|
const document = await fromUuid(target.uuid);
|
||||||
|
const name = document?.name ?? target.label;
|
||||||
|
if (!name) continue;
|
||||||
|
entries.push({ name, document });
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
display: entries.map((entry) => entry.name).join(", "),
|
||||||
|
entries
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const names = multiple
|
||||||
|
? this.#extractPlainTextEntries(result.text)
|
||||||
|
: [result.text].map((entry) => String(entry ?? "").trim()).filter(Boolean);
|
||||||
|
|
||||||
|
return {
|
||||||
|
display: names.join(", "),
|
||||||
|
entries: names.map((name) => ({ name, document: null }))
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
static #toEmbeddedItemData(item) {
|
||||||
|
const data = foundry.utils.deepClone(item.toObject());
|
||||||
|
delete data._id;
|
||||||
|
delete data.folder;
|
||||||
|
delete data.sort;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Open the GM-only mission pack dialog.
|
||||||
|
* @returns {Promise<object|null>}
|
||||||
|
*/
|
||||||
|
static async openMissionPackDialog() {
|
||||||
|
if (!game.user.isGM) {
|
||||||
|
ui.notifications.warn(game.i18n.localize("DNC.Macro.MissionPack.WarnGMOnly"));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const actorOptions = this.#getMissionPackActorOptions();
|
||||||
|
if (!actorOptions.length) {
|
||||||
|
ui.notifications.warn(game.i18n.localize("DNC.Macro.MissionPack.WarnNoEmployees"));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const selectedActorId = this.#getDefaultMissionPackActorId(actorOptions.map((option) => game.actors.get(option.value)).filter(Boolean));
|
||||||
|
const content = await foundry.applications.handlebars.renderTemplate(
|
||||||
|
"systems/fvtt-donjon-et-cie/templates/dialogs/mission-pack-dialog.hbs",
|
||||||
|
{
|
||||||
|
actorOptions,
|
||||||
|
selectedActorId
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
return foundry.applications.api.DialogV2.wait({
|
||||||
|
window: {
|
||||||
|
title: game.i18n.localize("DNC.Macro.MissionPack.DialogTitle"),
|
||||||
|
icon: "fa-solid fa-box-open"
|
||||||
|
},
|
||||||
|
classes: ["dnc-roll-dialog"],
|
||||||
|
content,
|
||||||
|
modal: false,
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
action: "grant",
|
||||||
|
label: game.i18n.localize("DNC.Macro.MissionPack.DialogAction"),
|
||||||
|
icon: "fa-solid fa-box-open",
|
||||||
|
default: true,
|
||||||
|
callback: async (event, button) => {
|
||||||
|
const actorId = button.form.elements.actorId?.value ?? "";
|
||||||
|
const actor = actorId ? game.actors.get(actorId) : null;
|
||||||
|
if (!actor) {
|
||||||
|
ui.notifications.warn(game.i18n.localize("DNC.Macro.MissionPack.WarnNoActor"));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return this.grantMissionPack(actor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
rejectClose: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Draw the initial mission pack for the resolved actor and add the resulting items.
|
||||||
|
* @param {Actor|string|null} target Resolved actor, token, or UUID. Defaults to selected token or user character.
|
||||||
|
* @returns {Promise<object|null>}
|
||||||
|
*/
|
||||||
|
static async grantMissionPack(target = null) {
|
||||||
|
const actor = await this.#resolveMissionPackActor(target);
|
||||||
|
if (!actor) {
|
||||||
|
ui.notifications.warn(game.i18n.localize("DNC.Macro.MissionPack.WarnNoActor"));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (actor.type !== "employe") {
|
||||||
|
ui.notifications.warn(game.i18n.localize("DNC.Macro.MissionPack.WarnInvalidActor"));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const draws = [];
|
||||||
|
const embeddedItems = [];
|
||||||
|
let missingCount = 0;
|
||||||
|
|
||||||
|
for (const spec of this.MISSION_PACK_TABLES) {
|
||||||
|
const table = await this.#findRollTableByName(spec.name);
|
||||||
|
if (!table) {
|
||||||
|
draws.push({
|
||||||
|
label: this.#getMissionPackLabel(spec.key),
|
||||||
|
display: game.i18n.format("DNC.Macro.MissionPack.TableMissing", { table: spec.name }),
|
||||||
|
addedNames: [],
|
||||||
|
addedSummary: "",
|
||||||
|
missingNames: [],
|
||||||
|
missingSummary: "",
|
||||||
|
failed: true
|
||||||
|
});
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
const draw = await table.draw({ displayChat: false });
|
||||||
|
const result = draw.results?.[0] ?? null;
|
||||||
|
const resolved = await this.#resolveTableResultEntries(result, { multiple: spec.multiple });
|
||||||
|
const addedNames = [];
|
||||||
|
const missingNames = [];
|
||||||
|
|
||||||
|
for (const entry of resolved.entries) {
|
||||||
|
const item = entry.document ?? await this.#findItemByName(entry.name);
|
||||||
|
if (!item) {
|
||||||
|
missingNames.push(entry.name);
|
||||||
|
missingCount += 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
embeddedItems.push(this.#toEmbeddedItemData(item));
|
||||||
|
addedNames.push(item.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
draws.push({
|
||||||
|
label: this.#getMissionPackLabel(spec.key),
|
||||||
|
display: resolved.display || game.i18n.localize("DNC.Macro.MissionPack.NoResult"),
|
||||||
|
addedNames,
|
||||||
|
addedSummary: addedNames.join(", "),
|
||||||
|
missingNames,
|
||||||
|
missingSummary: missingNames.join(", "),
|
||||||
|
failed: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const createdItems = embeddedItems.length
|
||||||
|
? await actor.createEmbeddedDocuments("Item", embeddedItems, { renderSheet: false })
|
||||||
|
: [];
|
||||||
|
|
||||||
|
const content = await foundry.applications.handlebars.renderTemplate(
|
||||||
|
"systems/fvtt-donjon-et-cie/templates/chat/mission-pack-card.hbs",
|
||||||
|
{
|
||||||
|
title: game.i18n.localize("DNC.Macro.MissionPack.Title"),
|
||||||
|
actorName: actor.name,
|
||||||
|
createdCount: createdItems.length,
|
||||||
|
missingCount,
|
||||||
|
draws
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
await ChatMessage.create({
|
||||||
|
speaker: ChatMessage.getSpeaker({ actor }),
|
||||||
|
user: game.user.id,
|
||||||
|
content
|
||||||
|
});
|
||||||
|
|
||||||
|
if (createdItems.length && !missingCount) {
|
||||||
|
ui.notifications.info(game.i18n.format("DNC.Macro.MissionPack.Success", {
|
||||||
|
actor: actor.name,
|
||||||
|
count: createdItems.length
|
||||||
|
}));
|
||||||
|
} else if (createdItems.length) {
|
||||||
|
ui.notifications.warn(game.i18n.format("DNC.Macro.MissionPack.Partial", {
|
||||||
|
actor: actor.name,
|
||||||
|
count: createdItems.length,
|
||||||
|
missing: missingCount
|
||||||
|
}));
|
||||||
|
} else {
|
||||||
|
ui.notifications.warn(game.i18n.localize("DNC.Macro.MissionPack.WarnNothingAdded"));
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
actor,
|
||||||
|
createdItems,
|
||||||
|
missingCount,
|
||||||
|
draws
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -19,6 +19,31 @@ import * as models from "./models/index.mjs";
|
|||||||
import * as sheets from "./applications/sheets/_module.mjs";
|
import * as sheets from "./applications/sheets/_module.mjs";
|
||||||
import { DonjonEtCieRollDialog } from "./applications/donjon-et-cie-roll-dialog.mjs";
|
import { DonjonEtCieRollDialog } from "./applications/donjon-et-cie-roll-dialog.mjs";
|
||||||
import { DonjonEtCieRolls } from "./donjon-et-cie-rolls.mjs";
|
import { DonjonEtCieRolls } from "./donjon-et-cie-rolls.mjs";
|
||||||
|
import { DonjonEtCieMacros } from "./donjon-et-cie-macros.mjs";
|
||||||
|
|
||||||
|
const WELCOME_MESSAGE_SETTING = "welcomeMessageVersion";
|
||||||
|
|
||||||
|
function injectActorDirectoryMissionPackButton(app, element) {
|
||||||
|
if (!game.user.isGM) return;
|
||||||
|
|
||||||
|
const root = app?.element ?? element?.[0] ?? element;
|
||||||
|
if (!(root instanceof HTMLElement)) return;
|
||||||
|
|
||||||
|
const headerActions = root.querySelector(".directory-header .header-actions");
|
||||||
|
if (!(headerActions instanceof HTMLElement)) return;
|
||||||
|
if (headerActions.querySelector(".dnc-mission-pack-button")) return;
|
||||||
|
|
||||||
|
const button = document.createElement("button");
|
||||||
|
button.type = "button";
|
||||||
|
button.className = "dnc-mission-pack-button";
|
||||||
|
button.title = game.i18n.localize("DNC.Macro.MissionPack.SidebarButton");
|
||||||
|
button.setAttribute("aria-label", game.i18n.localize("DNC.Macro.MissionPack.SidebarButton"));
|
||||||
|
button.innerHTML = `<i class="fa-solid fa-box-open" inert></i><span>${game.i18n.localize("DNC.Macro.MissionPack.SidebarButton")}</span>`;
|
||||||
|
button.addEventListener("click", () => {
|
||||||
|
void game.system.donjonEtCie.macros.openMissionPackDialog();
|
||||||
|
});
|
||||||
|
headerActions.append(button);
|
||||||
|
}
|
||||||
|
|
||||||
function onChatActionClick(event) {
|
function onChatActionClick(event) {
|
||||||
const button = event.target.closest("[data-action='rollChatDamage'], [data-action='rollSpellChaos'], [data-action='applyDamage']");
|
const button = event.target.closest("[data-action='rollChatDamage'], [data-action='rollSpellChaos'], [data-action='applyDamage']");
|
||||||
@@ -64,6 +89,73 @@ function onChatActionClick(event) {
|
|||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function registerSystemSettings() {
|
||||||
|
game.settings.register("fvtt-donjon-et-cie", WELCOME_MESSAGE_SETTING, {
|
||||||
|
name: "Version du message de bienvenue",
|
||||||
|
hint: "Usage interne pour eviter de republier le message de bienvenue a chaque chargement.",
|
||||||
|
scope: "world",
|
||||||
|
config: false,
|
||||||
|
type: String,
|
||||||
|
default: ""
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getHelpJournalLink() {
|
||||||
|
const pack = [...game.packs.values()].find((candidate) => candidate.metadata.name === "system-help");
|
||||||
|
if (!pack) return null;
|
||||||
|
|
||||||
|
const index = await pack.getIndex();
|
||||||
|
const entry = index.find((document) => document.name === "Aide du systeme");
|
||||||
|
if (!entry?._id) return null;
|
||||||
|
|
||||||
|
const journal = await pack.getDocument(entry._id);
|
||||||
|
if (!journal?.uuid) return null;
|
||||||
|
|
||||||
|
return `@UUID[${journal.uuid}]{${game.i18n.localize("DNC.Welcome.HelpLinkLabel")}}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function maybeCreateWelcomeMessage() {
|
||||||
|
if (!game.user.isGM) return;
|
||||||
|
|
||||||
|
const currentVersion = String(game.system.version ?? "");
|
||||||
|
const shownVersion = String(game.settings.get("fvtt-donjon-et-cie", WELCOME_MESSAGE_SETTING) ?? "");
|
||||||
|
if (shownVersion === currentVersion) return;
|
||||||
|
|
||||||
|
const helpJournalLink = await getHelpJournalLink();
|
||||||
|
const content = await foundry.applications.handlebars.renderTemplate(
|
||||||
|
"systems/fvtt-donjon-et-cie/templates/chat/welcome-card.hbs",
|
||||||
|
{
|
||||||
|
title: game.i18n.localize("DNC.Welcome.Title"),
|
||||||
|
subtitle: game.i18n.format("DNC.Welcome.Subtitle", { version: currentVersion }),
|
||||||
|
intro: game.i18n.localize("DNC.Welcome.Intro"),
|
||||||
|
bullets: [
|
||||||
|
game.i18n.localize("DNC.Welcome.BulletActors"),
|
||||||
|
game.i18n.localize("DNC.Welcome.BulletItems"),
|
||||||
|
game.i18n.localize("DNC.Welcome.BulletMissionPack")
|
||||||
|
],
|
||||||
|
helpLabel: game.i18n.localize("DNC.Welcome.HelpLabel"),
|
||||||
|
helpLink: helpJournalLink,
|
||||||
|
helpFallback: game.i18n.localize("DNC.Welcome.HelpFallback"),
|
||||||
|
footer: game.i18n.localize("DNC.Welcome.Footer"),
|
||||||
|
creditsLabel: game.i18n.localize("DNC.Welcome.CreditsLabel"),
|
||||||
|
creditsText: game.i18n.localize("DNC.Welcome.CreditsText"),
|
||||||
|
officialLabel: game.i18n.localize("DNC.Welcome.OfficialLabel"),
|
||||||
|
officialUrl: "https://johndoe-rpg.com/catalogue/donjon-cie/",
|
||||||
|
officialLinkText: game.i18n.localize("DNC.Welcome.OfficialLinkText")
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
await ChatMessage.create({
|
||||||
|
speaker: {
|
||||||
|
alias: game.system.title
|
||||||
|
},
|
||||||
|
user: game.user.id,
|
||||||
|
content: await TextEditor.enrichHTML(content, { async: true })
|
||||||
|
});
|
||||||
|
|
||||||
|
await game.settings.set("fvtt-donjon-et-cie", WELCOME_MESSAGE_SETTING, currentVersion);
|
||||||
|
}
|
||||||
|
|
||||||
Hooks.once("init", async () => {
|
Hooks.once("init", async () => {
|
||||||
const startupBanner =
|
const startupBanner =
|
||||||
`▗▄▄▄ ▗▄▖ ▗▖ ▗▖ ▗▖ ▗▄▖ ▗▖ ▗▖ ▗▄▄▄▖▗▄▄▄▖ ▗▄▄▖▗▄▄▄▖▗▞▀▚▖
|
`▗▄▄▄ ▗▄▖ ▗▖ ▗▖ ▗▖ ▗▄▖ ▗▖ ▗▖ ▗▄▄▄▖▗▄▄▄▖ ▗▄▄▖▗▄▄▄▖▗▞▀▚▖
|
||||||
@@ -75,6 +167,7 @@ Hooks.once("init", async () => {
|
|||||||
console.log(`%c${startupBanner}`, "font-family: monospace; white-space: pre; line-height: 1.1;");
|
console.log(`%c${startupBanner}`, "font-family: monospace; white-space: pre; line-height: 1.1;");
|
||||||
console.log("Initialisation du systeme Donjon & Cie");
|
console.log("Initialisation du systeme Donjon & Cie");
|
||||||
|
|
||||||
|
registerSystemSettings();
|
||||||
await DonjonEtCieUtility.preloadHandlebarsTemplates();
|
await DonjonEtCieUtility.preloadHandlebarsTemplates();
|
||||||
|
|
||||||
CONFIG.Combat.initiative = {
|
CONFIG.Combat.initiative = {
|
||||||
@@ -107,7 +200,8 @@ Hooks.once("init", async () => {
|
|||||||
sheets,
|
sheets,
|
||||||
rolls: DonjonEtCieRolls,
|
rolls: DonjonEtCieRolls,
|
||||||
dialogs: DonjonEtCieRollDialog,
|
dialogs: DonjonEtCieRollDialog,
|
||||||
utility: DonjonEtCieUtility
|
utility: DonjonEtCieUtility,
|
||||||
|
macros: DonjonEtCieMacros
|
||||||
};
|
};
|
||||||
|
|
||||||
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
|
foundry.documents.collections.Actors.unregisterSheet("core", foundry.appv1.sheets.ActorSheet);
|
||||||
@@ -122,4 +216,9 @@ Hooks.once("init", async () => {
|
|||||||
|
|
||||||
Hooks.once("ready", () => {
|
Hooks.once("ready", () => {
|
||||||
document.addEventListener("click", onChatActionClick);
|
document.addEventListener("click", onChatActionClick);
|
||||||
|
void maybeCreateWelcomeMessage();
|
||||||
|
});
|
||||||
|
|
||||||
|
Hooks.on("renderActorDirectory", (app, element) => {
|
||||||
|
injectActorDirectoryMissionPackButton(app, element);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ export class DonjonEtCieUtility {
|
|||||||
"systems/fvtt-donjon-et-cie/templates/dialogs/damage-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/spell-roll.hbs",
|
||||||
"systems/fvtt-donjon-et-cie/templates/dialogs/usage-roll.hbs",
|
"systems/fvtt-donjon-et-cie/templates/dialogs/usage-roll.hbs",
|
||||||
|
"systems/fvtt-donjon-et-cie/templates/dialogs/mission-pack-dialog.hbs",
|
||||||
"systems/fvtt-donjon-et-cie/templates/chat/roll-card.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/spell-card.hbs",
|
||||||
"systems/fvtt-donjon-et-cie/templates/chat/chaos-card.hbs",
|
"systems/fvtt-donjon-et-cie/templates/chat/chaos-card.hbs",
|
||||||
@@ -43,7 +44,9 @@ export class DonjonEtCieUtility {
|
|||||||
"systems/fvtt-donjon-et-cie/templates/chat/favor-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/initiative-card.hbs",
|
||||||
"systems/fvtt-donjon-et-cie/templates/chat/usage-card.hbs",
|
"systems/fvtt-donjon-et-cie/templates/chat/usage-card.hbs",
|
||||||
"systems/fvtt-donjon-et-cie/templates/chat/item-card.hbs"
|
"systems/fvtt-donjon-et-cie/templates/chat/item-card.hbs",
|
||||||
|
"systems/fvtt-donjon-et-cie/templates/chat/mission-pack-card.hbs",
|
||||||
|
"systems/fvtt-donjon-et-cie/templates/chat/welcome-card.hbs"
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Generated
+739
@@ -9,12 +9,165 @@
|
|||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"license": "UNLICENSED",
|
"license": "UNLICENSED",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@foundryvtt/foundryvtt-cli": "^1.1.0",
|
||||||
"gulp": "^4.0.2",
|
"gulp": "^4.0.2",
|
||||||
"gulp-less": "^5.0.0",
|
"gulp-less": "^5.0.0",
|
||||||
"gulp-rename": "^2.0.0",
|
"gulp-rename": "^2.0.0",
|
||||||
"gulp-sourcemaps": "^3.0.0"
|
"gulp-sourcemaps": "^3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@foundryvtt/foundryvtt-cli": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@foundryvtt/foundryvtt-cli/-/foundryvtt-cli-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-ergKZDUSgQ79168r38ORyN4v/UTliA40rxElaUh5iS27Qw9H8Ep/ll8j3/HfiikO3XUDwYxZLfDJfbcyj2i9TQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"chalk": "^5.4.1",
|
||||||
|
"classic-level": "^1.4.1",
|
||||||
|
"esm": "^3.2.25",
|
||||||
|
"js-yaml": "^4.1.0",
|
||||||
|
"mkdirp": "^3.0.1",
|
||||||
|
"nedb-promises": "^6.2.3",
|
||||||
|
"yargs": "^17.7.2"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"fvtt": "fvtt.mjs"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">17.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@foundryvtt/foundryvtt-cli/node_modules/ansi-regex": {
|
||||||
|
"version": "5.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||||
|
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@foundryvtt/foundryvtt-cli/node_modules/cliui": {
|
||||||
|
"version": "8.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
|
||||||
|
"integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"string-width": "^4.2.0",
|
||||||
|
"strip-ansi": "^6.0.1",
|
||||||
|
"wrap-ansi": "^7.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@foundryvtt/foundryvtt-cli/node_modules/get-caller-file": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"engines": {
|
||||||
|
"node": "6.* || 8.* || >= 10.*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@foundryvtt/foundryvtt-cli/node_modules/is-fullwidth-code-point": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@foundryvtt/foundryvtt-cli/node_modules/string-width": {
|
||||||
|
"version": "4.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
|
||||||
|
"integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"emoji-regex": "^8.0.0",
|
||||||
|
"is-fullwidth-code-point": "^3.0.0",
|
||||||
|
"strip-ansi": "^6.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@foundryvtt/foundryvtt-cli/node_modules/strip-ansi": {
|
||||||
|
"version": "6.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
|
||||||
|
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-regex": "^5.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@foundryvtt/foundryvtt-cli/node_modules/wrap-ansi": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-styles": "^4.0.0",
|
||||||
|
"string-width": "^4.1.0",
|
||||||
|
"strip-ansi": "^6.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@foundryvtt/foundryvtt-cli/node_modules/y18n": {
|
||||||
|
"version": "5.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
|
||||||
|
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@foundryvtt/foundryvtt-cli/node_modules/yargs": {
|
||||||
|
"version": "17.7.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
|
||||||
|
"integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"cliui": "^8.0.1",
|
||||||
|
"escalade": "^3.1.1",
|
||||||
|
"get-caller-file": "^2.0.5",
|
||||||
|
"require-directory": "^2.1.1",
|
||||||
|
"string-width": "^4.2.3",
|
||||||
|
"y18n": "^5.0.5",
|
||||||
|
"yargs-parser": "^21.1.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@foundryvtt/foundryvtt-cli/node_modules/yargs-parser": {
|
||||||
|
"version": "21.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
|
||||||
|
"integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@gulp-sourcemaps/identity-map": {
|
"node_modules/@gulp-sourcemaps/identity-map": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz",
|
||||||
@@ -81,6 +234,67 @@
|
|||||||
"xtend": "~4.0.1"
|
"xtend": "~4.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@seald-io/binary-search-tree": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@seald-io/binary-search-tree/-/binary-search-tree-1.0.3.tgz",
|
||||||
|
"integrity": "sha512-qv3jnwoakeax2razYaMsGI/luWdliBLHTdC6jU55hQt1hcFqzauH/HsBollQ7IR4ySTtYhT+xyHoijpA16C+tA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"node_modules/@seald-io/nedb": {
|
||||||
|
"version": "4.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@seald-io/nedb/-/nedb-4.1.2.tgz",
|
||||||
|
"integrity": "sha512-bDr6TqjBVS2rDyYM9CPxAnotj5FuNL9NF8o7h7YyFXM7yruqT4ddr+PkSb2mJvvw991bqdftazkEo38gykvaww==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@seald-io/binary-search-tree": "^1.0.3",
|
||||||
|
"localforage": "^1.10.0",
|
||||||
|
"util": "^0.12.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/abstract-level": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-eUP/6pbXBkMbXFdx4IH2fVgvB7M0JvR7/lIL33zcs0IBcwjdzSSl31TOJsaCzmKSSDF9h8QYSOJux4Nd4YJqFg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"buffer": "^6.0.3",
|
||||||
|
"catering": "^2.1.0",
|
||||||
|
"is-buffer": "^2.0.5",
|
||||||
|
"level-supports": "^4.0.0",
|
||||||
|
"level-transcoder": "^1.0.1",
|
||||||
|
"module-error": "^1.0.1",
|
||||||
|
"queue-microtask": "^1.2.3"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/abstract-level/node_modules/is-buffer": {
|
||||||
|
"version": "2.0.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
|
||||||
|
"integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patreon",
|
||||||
|
"url": "https://www.patreon.com/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "consulting",
|
||||||
|
"url": "https://feross.org/support"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/acorn": {
|
"node_modules/acorn": {
|
||||||
"version": "6.4.2",
|
"version": "6.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
|
||||||
@@ -130,6 +344,22 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/ansi-styles": {
|
||||||
|
"version": "4.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
||||||
|
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"color-convert": "^2.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ansi-wrap": {
|
"node_modules/ansi-wrap": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
|
||||||
@@ -184,6 +414,13 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/argparse": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
||||||
|
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "Python-2.0"
|
||||||
|
},
|
||||||
"node_modules/arr-diff": {
|
"node_modules/arr-diff": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
|
||||||
@@ -397,6 +634,22 @@
|
|||||||
"node": ">= 4.5.0"
|
"node": ">= 4.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/available-typed-arrays": {
|
||||||
|
"version": "1.0.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
|
||||||
|
"integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"possible-typed-array-names": "^1.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/bach": {
|
"node_modules/bach": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz",
|
||||||
@@ -457,6 +710,27 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/base64-js": {
|
||||||
|
"version": "1.5.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||||
|
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patreon",
|
||||||
|
"url": "https://www.patreon.com/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "consulting",
|
||||||
|
"url": "https://feross.org/support"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/binary-extensions": {
|
"node_modules/binary-extensions": {
|
||||||
"version": "1.13.1",
|
"version": "1.13.1",
|
||||||
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
|
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
|
||||||
@@ -511,6 +785,31 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/buffer": {
|
||||||
|
"version": "6.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
|
||||||
|
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patreon",
|
||||||
|
"url": "https://www.patreon.com/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "consulting",
|
||||||
|
"url": "https://feross.org/support"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"base64-js": "^1.3.1",
|
||||||
|
"ieee754": "^1.2.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/buffer-equal": {
|
"node_modules/buffer-equal": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz",
|
||||||
@@ -612,6 +911,29 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/catering": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/chalk": {
|
||||||
|
"version": "5.6.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
|
||||||
|
"integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": "^12.17.0 || ^14.13 || >=16.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/chalk/chalk?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/chokidar": {
|
"node_modules/chokidar": {
|
||||||
"version": "2.1.8",
|
"version": "2.1.8",
|
||||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
|
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
|
||||||
@@ -678,6 +1000,24 @@
|
|||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/classic-level": {
|
||||||
|
"version": "1.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/classic-level/-/classic-level-1.4.1.tgz",
|
||||||
|
"integrity": "sha512-qGx/KJl3bvtOHrGau2WklEZuXhS3zme+jf+fsu6Ej7W7IP/C49v7KNlWIsT1jZu0YnfzSIYDGcEWpCa1wKGWXQ==",
|
||||||
|
"dev": true,
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"abstract-level": "^1.0.2",
|
||||||
|
"catering": "^2.1.0",
|
||||||
|
"module-error": "^1.0.1",
|
||||||
|
"napi-macros": "^2.2.2",
|
||||||
|
"node-gyp-build": "^4.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/cliui": {
|
"node_modules/cliui": {
|
||||||
"version": "3.2.0",
|
"version": "3.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
|
||||||
@@ -768,6 +1108,26 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/color-convert": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||||
|
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"color-name": "~1.1.4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=7.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/color-name": {
|
||||||
|
"version": "1.1.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||||
|
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/color-support": {
|
"node_modules/color-support": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
|
||||||
@@ -1075,6 +1435,13 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/emoji-regex": {
|
||||||
|
"version": "8.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||||
|
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/end-of-stream": {
|
"node_modules/end-of-stream": {
|
||||||
"version": "1.4.5",
|
"version": "1.4.5",
|
||||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
|
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
|
||||||
@@ -1198,6 +1565,26 @@
|
|||||||
"es6-symbol": "^3.1.1"
|
"es6-symbol": "^3.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/escalade": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
|
||||||
|
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/esm": {
|
||||||
|
"version": "3.2.25",
|
||||||
|
"resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
|
||||||
|
"integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/esniff": {
|
"node_modules/esniff": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz",
|
||||||
@@ -1492,6 +1879,22 @@
|
|||||||
"readable-stream": "^2.3.6"
|
"readable-stream": "^2.3.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/for-each": {
|
||||||
|
"version": "0.3.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
|
||||||
|
"integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"is-callable": "^1.2.7"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/for-in": {
|
"node_modules/for-in": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
|
||||||
@@ -1590,6 +1993,16 @@
|
|||||||
"url": "https://github.com/sponsors/ljharb"
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/generator-function": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz",
|
||||||
|
"integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/get-caller-file": {
|
"node_modules/get-caller-file": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
|
||||||
@@ -1951,6 +2364,22 @@
|
|||||||
"url": "https://github.com/sponsors/ljharb"
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/has-tostringtag": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"has-symbols": "^1.0.3"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/has-value": {
|
"node_modules/has-value": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
|
||||||
@@ -2040,6 +2469,27 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/ieee754": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patreon",
|
||||||
|
"url": "https://www.patreon.com/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "consulting",
|
||||||
|
"url": "https://feross.org/support"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "BSD-3-Clause"
|
||||||
|
},
|
||||||
"node_modules/image-size": {
|
"node_modules/image-size": {
|
||||||
"version": "0.5.5",
|
"version": "0.5.5",
|
||||||
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
|
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
|
||||||
@@ -2054,6 +2504,13 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/immediate": {
|
||||||
|
"version": "3.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
||||||
|
"integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/inflight": {
|
"node_modules/inflight": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||||
@@ -2127,6 +2584,23 @@
|
|||||||
"node": ">= 0.10"
|
"node": ">= 0.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/is-arguments": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"call-bound": "^1.0.2",
|
||||||
|
"has-tostringtag": "^1.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/is-arrayish": {
|
"node_modules/is-arrayish": {
|
||||||
"version": "0.2.1",
|
"version": "0.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
|
||||||
@@ -2154,6 +2628,19 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/is-callable": {
|
||||||
|
"version": "1.2.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
|
||||||
|
"integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/is-core-module": {
|
"node_modules/is-core-module": {
|
||||||
"version": "2.16.1",
|
"version": "2.16.1",
|
||||||
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
|
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
|
||||||
@@ -2230,6 +2717,26 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/is-generator-function": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"call-bound": "^1.0.4",
|
||||||
|
"generator-function": "^2.0.0",
|
||||||
|
"get-proto": "^1.0.1",
|
||||||
|
"has-tostringtag": "^1.0.2",
|
||||||
|
"safe-regex-test": "^1.1.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/is-glob": {
|
"node_modules/is-glob": {
|
||||||
"version": "4.0.3",
|
"version": "4.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
|
||||||
@@ -2296,6 +2803,25 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/is-regex": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"call-bound": "^1.0.2",
|
||||||
|
"gopd": "^1.2.0",
|
||||||
|
"has-tostringtag": "^1.0.2",
|
||||||
|
"hasown": "^2.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/is-relative": {
|
"node_modules/is-relative": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
|
||||||
@@ -2309,6 +2835,22 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/is-typed-array": {
|
||||||
|
"version": "1.1.15",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
|
||||||
|
"integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"which-typed-array": "^1.1.16"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/is-unc-path": {
|
"node_modules/is-unc-path": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
|
||||||
@@ -2386,6 +2928,19 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/js-yaml": {
|
||||||
|
"version": "4.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
|
||||||
|
"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"argparse": "^2.0.1"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"js-yaml": "bin/js-yaml.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/json-stable-stringify-without-jsonify": {
|
"node_modules/json-stable-stringify-without-jsonify": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
|
||||||
@@ -2489,6 +3044,40 @@
|
|||||||
"source-map": "~0.6.0"
|
"source-map": "~0.6.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/level-supports": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz",
|
||||||
|
"integrity": "sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/level-transcoder": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"buffer": "^6.0.3",
|
||||||
|
"module-error": "^1.0.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/lie": {
|
||||||
|
"version": "3.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
|
||||||
|
"integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"immediate": "~3.0.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/liftoff": {
|
"node_modules/liftoff": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz",
|
||||||
@@ -2549,6 +3138,16 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/localforage": {
|
||||||
|
"version": "1.10.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz",
|
||||||
|
"integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"dependencies": {
|
||||||
|
"lie": "3.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/lru-queue": {
|
"node_modules/lru-queue": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
|
||||||
@@ -2837,6 +3436,32 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/mkdirp": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
|
||||||
|
"integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"mkdirp": "dist/cjs/src/bin.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/module-error": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ms": {
|
"node_modules/ms": {
|
||||||
"version": "2.1.3",
|
"version": "2.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||||
@@ -2935,6 +3560,23 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/napi-macros": {
|
||||||
|
"version": "2.2.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz",
|
||||||
|
"integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/nedb-promises": {
|
||||||
|
"version": "6.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/nedb-promises/-/nedb-promises-6.2.3.tgz",
|
||||||
|
"integrity": "sha512-enq0IjNyBz9Qy9W/QPCcLGh/QORGBjXbIeZeWvIjO3OMLyAvlKT3hiJubP2BKEiFniUlR3L01o18ktqgn5jxqA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@seald-io/nedb": "^4.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/needle": {
|
"node_modules/needle": {
|
||||||
"version": "3.5.0",
|
"version": "3.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/needle/-/needle-3.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/needle/-/needle-3.5.0.tgz",
|
||||||
@@ -2960,6 +3602,18 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
|
"node_modules/node-gyp-build": {
|
||||||
|
"version": "4.8.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
|
||||||
|
"integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"node-gyp-build": "bin.js",
|
||||||
|
"node-gyp-build-optional": "optional.js",
|
||||||
|
"node-gyp-build-test": "build-test.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/normalize-package-data": {
|
"node_modules/normalize-package-data": {
|
||||||
"version": "2.5.0",
|
"version": "2.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
|
||||||
@@ -3455,6 +4109,16 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/possible-typed-array-names": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "7.0.39",
|
"version": "7.0.39",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
|
||||||
@@ -3521,6 +4185,27 @@
|
|||||||
"pump": "^2.0.0"
|
"pump": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/queue-microtask": {
|
||||||
|
"version": "1.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
|
||||||
|
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patreon",
|
||||||
|
"url": "https://www.patreon.com/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "consulting",
|
||||||
|
"url": "https://feross.org/support"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/read-pkg": {
|
"node_modules/read-pkg": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
|
||||||
@@ -3840,6 +4525,24 @@
|
|||||||
"ret": "~0.1.10"
|
"ret": "~0.1.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/safe-regex-test": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"call-bound": "^1.0.2",
|
||||||
|
"es-errors": "^1.3.0",
|
||||||
|
"is-regex": "^1.2.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/safer-buffer": {
|
"node_modules/safer-buffer": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||||
@@ -4727,6 +5430,20 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/util": {
|
||||||
|
"version": "0.12.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
|
||||||
|
"integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"inherits": "^2.0.3",
|
||||||
|
"is-arguments": "^1.0.4",
|
||||||
|
"is-generator-function": "^1.0.7",
|
||||||
|
"is-typed-array": "^1.1.3",
|
||||||
|
"which-typed-array": "^1.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/util-deprecate": {
|
"node_modules/util-deprecate": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||||
@@ -4908,6 +5625,28 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
|
"node_modules/which-typed-array": {
|
||||||
|
"version": "1.1.20",
|
||||||
|
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz",
|
||||||
|
"integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"available-typed-arrays": "^1.0.7",
|
||||||
|
"call-bind": "^1.0.8",
|
||||||
|
"call-bound": "^1.0.4",
|
||||||
|
"for-each": "^0.3.5",
|
||||||
|
"get-proto": "^1.0.1",
|
||||||
|
"gopd": "^1.2.0",
|
||||||
|
"has-tostringtag": "^1.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/ljharb"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/wrap-ansi": {
|
"node_modules/wrap-ansi": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
|
||||||
|
|||||||
+5
-2
@@ -4,11 +4,14 @@
|
|||||||
"description": "Systeme FoundryVTT pour Donjon & Cie",
|
"description": "Systeme FoundryVTT pour Donjon & Cie",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "gulp build",
|
"build": "gulp build && npm run pack:compendiums",
|
||||||
"watch": "gulp watch"
|
"watch": "gulp watch",
|
||||||
|
"pack:compendiums": "node ./tools/packCompendiums.mjs",
|
||||||
|
"unpack:compendiums": "node ./tools/unpackCompendiums.mjs"
|
||||||
},
|
},
|
||||||
"license": "UNLICENSED",
|
"license": "UNLICENSED",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@foundryvtt/foundryvtt-cli": "^1.1.0",
|
||||||
"gulp": "^4.0.2",
|
"gulp": "^4.0.2",
|
||||||
"gulp-less": "^5.0.0",
|
"gulp-less": "^5.0.0",
|
||||||
"gulp-rename": "^2.0.0",
|
"gulp-rename": "^2.0.0",
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
MANIFEST-000040
|
MANIFEST-000061
|
||||||
|
|||||||
+7
-7
@@ -1,7 +1,7 @@
|
|||||||
2026/04/26-15:24:50.959107 7f57a5fef6c0 Recovering log #37
|
2026/05/01-09:12:26.343249 7f3f34bfd6c0 Recovering log #59
|
||||||
2026/04/26-15:24:50.969309 7f57a5fef6c0 Delete type=3 #35
|
2026/05/01-09:12:26.359113 7f3f34bfd6c0 Delete type=3 #57
|
||||||
2026/04/26-15:24:50.969397 7f57a5fef6c0 Delete type=0 #37
|
2026/05/01-09:12:26.359184 7f3f34bfd6c0 Delete type=0 #59
|
||||||
2026/04/26-15:45:09.958844 7f57977fe6c0 Level-0 table #43: started
|
2026/05/01-09:12:52.776973 7f3ee77fe6c0 Level-0 table #64: started
|
||||||
2026/04/26-15:45:09.959077 7f57977fe6c0 Level-0 table #43: 0 bytes OK
|
2026/05/01-09:12:52.777005 7f3ee77fe6c0 Level-0 table #64: 0 bytes OK
|
||||||
2026/04/26-15:45:09.966304 7f57977fe6c0 Delete type=0 #41
|
2026/05/01-09:12:52.786696 7f3ee77fe6c0 Delete type=0 #62
|
||||||
2026/04/26-15:45:09.985022 7f57977fe6c0 Manual compaction at level-0 from '!folders!K9aiFu0dE6UYiXBd' @ 72057594037927935 : 1 .. '!items!zyqLzmpbHxK3jt5q' @ 0 : 0; will stop at (end)
|
2026/05/01-09:12:52.798282 7f3ee77fe6c0 Manual compaction at level-0 from '!folders!K9aiFu0dE6UYiXBd' @ 72057594037927935 : 1 .. '!items!zyqLzmpbHxK3jt5q' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
+7
-11
@@ -1,11 +1,7 @@
|
|||||||
2026/04/19-18:55:51.456726 7ff1abfff6c0 Delete type=3 #1
|
2026/05/01-00:45:47.927508 7f3f34bfd6c0 Recovering log #55
|
||||||
2026/04/19-19:06:36.056435 7ff1a9ffb6c0 Level-0 table #38: started
|
2026/05/01-00:45:47.937371 7f3f34bfd6c0 Delete type=3 #53
|
||||||
2026/04/19-19:06:36.056473 7ff1a9ffb6c0 Level-0 table #38: 0 bytes OK
|
2026/05/01-00:45:47.937437 7f3f34bfd6c0 Delete type=0 #55
|
||||||
2026/04/19-19:06:36.063121 7ff1a9ffb6c0 Delete type=0 #36
|
2026/05/01-00:49:08.816625 7f3ee77fe6c0 Level-0 table #60: started
|
||||||
2026/04/19-19:06:36.069412 7ff1a9ffb6c0 Manual compaction at level-0 from '!folders!K9aiFu0dE6UYiXBd' @ 72057594037927935 : 1 .. '!items!zyqLzmpbHxK3jt5q' @ 0 : 0; will stop at '!items!zyqLzmpbHxK3jt5q' @ 188 : 1
|
2026/05/01-00:49:08.816656 7f3ee77fe6c0 Level-0 table #60: 0 bytes OK
|
||||||
2026/04/19-19:06:36.069420 7ff1a9ffb6c0 Compacting 1@0 + 0@1 files
|
2026/05/01-00:49:08.823102 7f3ee77fe6c0 Delete type=0 #58
|
||||||
2026/04/19-19:06:36.073487 7ff1a9ffb6c0 Generated table #39@0: 189 keys, 41244 bytes
|
2026/05/01-00:49:08.830613 7f3ee77fe6c0 Manual compaction at level-0 from '!folders!K9aiFu0dE6UYiXBd' @ 72057594037927935 : 1 .. '!items!zyqLzmpbHxK3jt5q' @ 0 : 0; will stop at (end)
|
||||||
2026/04/19-19:06:36.073509 7ff1a9ffb6c0 Compacted 1@0 + 0@1 files => 41244 bytes
|
|
||||||
2026/04/19-19:06:36.079534 7ff1a9ffb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
|
||||||
2026/04/19-19:06:36.079617 7ff1a9ffb6c0 Delete type=2 #14
|
|
||||||
2026/04/19-19:06:36.106853 7ff1a9ffb6c0 Manual compaction at level-0 from '!items!zyqLzmpbHxK3jt5q' @ 188 : 1 .. '!items!zyqLzmpbHxK3jt5q' @ 0 : 0; will stop at (end)
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000027
|
MANIFEST-000048
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2026/04/26-15:24:50.974308 7f57a57ee6c0 Recovering log #24
|
2026/05/01-09:12:26.362764 7f3ee7fff6c0 Recovering log #46
|
||||||
2026/04/26-15:24:50.984638 7f57a57ee6c0 Delete type=3 #22
|
2026/05/01-09:12:26.377202 7f3ee7fff6c0 Delete type=3 #44
|
||||||
2026/04/26-15:24:50.984738 7f57a57ee6c0 Delete type=0 #24
|
2026/05/01-09:12:26.377270 7f3ee7fff6c0 Delete type=0 #46
|
||||||
2026/04/26-15:45:09.972734 7f57977fe6c0 Level-0 table #30: started
|
2026/05/01-09:12:52.767020 7f3ee77fe6c0 Level-0 table #51: started
|
||||||
2026/04/26-15:45:09.972793 7f57977fe6c0 Level-0 table #30: 0 bytes OK
|
2026/05/01-09:12:52.767054 7f3ee77fe6c0 Level-0 table #51: 0 bytes OK
|
||||||
2026/04/26-15:45:09.978845 7f57977fe6c0 Delete type=0 #28
|
2026/05/01-09:12:52.776818 7f3ee77fe6c0 Delete type=0 #49
|
||||||
2026/04/26-15:45:09.985047 7f57977fe6c0 Manual compaction at level-0 from '!tables!PPsxQgHwLCQ2gjSW' @ 72057594037927935 : 1 .. '!tables.results!wJZXUo4q5b5vE3Dy.zFTPLMc9zOl5hISV' @ 0 : 0; will stop at (end)
|
2026/05/01-09:12:52.798270 7f3ee77fe6c0 Manual compaction at level-0 from '!tables!PPsxQgHwLCQ2gjSW' @ 72057594037927935 : 1 .. '!tables.results!wJZXUo4q5b5vE3Dy.zFTPLMc9zOl5hISV' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
@@ -1,11 +1,7 @@
|
|||||||
2026/04/19-18:55:51.477710 7ff1abfff6c0 Delete type=3 #1
|
2026/05/01-00:45:47.940542 7f3f35bff6c0 Recovering log #42
|
||||||
2026/04/19-19:06:36.063191 7ff1a9ffb6c0 Level-0 table #25: started
|
2026/05/01-00:45:47.951337 7f3f35bff6c0 Delete type=3 #40
|
||||||
2026/04/19-19:06:36.063213 7ff1a9ffb6c0 Level-0 table #25: 0 bytes OK
|
2026/05/01-00:45:47.951402 7f3f35bff6c0 Delete type=0 #42
|
||||||
2026/04/19-19:06:36.069246 7ff1a9ffb6c0 Delete type=0 #23
|
2026/05/01-00:49:08.810118 7f3ee77fe6c0 Level-0 table #47: started
|
||||||
2026/04/19-19:06:36.079744 7ff1a9ffb6c0 Manual compaction at level-0 from '!tables!PPsxQgHwLCQ2gjSW' @ 72057594037927935 : 1 .. '!tables.results!wJZXUo4q5b5vE3Dy.zFTPLMc9zOl5hISV' @ 0 : 0; will stop at '!tables.results!wJZXUo4q5b5vE3Dy.zFTPLMc9zOl5hISV' @ 208 : 1
|
2026/05/01-00:49:08.810197 7f3ee77fe6c0 Level-0 table #47: 0 bytes OK
|
||||||
2026/04/19-19:06:36.079754 7ff1a9ffb6c0 Compacting 1@0 + 0@1 files
|
2026/05/01-00:49:08.816466 7f3ee77fe6c0 Delete type=0 #45
|
||||||
2026/04/19-19:06:36.084239 7ff1a9ffb6c0 Generated table #26@0: 120 keys, 28120 bytes
|
2026/05/01-00:49:08.830594 7f3ee77fe6c0 Manual compaction at level-0 from '!tables!PPsxQgHwLCQ2gjSW' @ 72057594037927935 : 1 .. '!tables.results!wJZXUo4q5b5vE3Dy.zFTPLMc9zOl5hISV' @ 0 : 0; will stop at (end)
|
||||||
2026/04/19-19:06:36.084267 7ff1a9ffb6c0 Compacted 1@0 + 0@1 files => 28120 bytes
|
|
||||||
2026/04/19-19:06:36.090555 7ff1a9ffb6c0 compacted to: files[ 0 1 0 0 0 0 0 ]
|
|
||||||
2026/04/19-19:06:36.090673 7ff1a9ffb6c0 Delete type=2 #5
|
|
||||||
2026/04/19-19:06:36.106868 7ff1a9ffb6c0 Manual compaction at level-0 from '!tables.results!wJZXUo4q5b5vE3Dy.zFTPLMc9zOl5hISV' @ 208 : 1 .. '!tables.results!wJZXUo4q5b5vE3Dy.zFTPLMc9zOl5hISV' @ 0 : 0; will stop at (end)
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000030
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
2026/05/01-09:12:26.379797 7f3f353fe6c0 Recovering log #28
|
||||||
|
2026/05/01-09:12:26.395236 7f3f353fe6c0 Delete type=3 #26
|
||||||
|
2026/05/01-09:12:26.395290 7f3f353fe6c0 Delete type=0 #28
|
||||||
|
2026/05/01-09:12:52.786838 7f3ee77fe6c0 Level-0 table #33: started
|
||||||
|
2026/05/01-09:12:52.786863 7f3ee77fe6c0 Level-0 table #33: 0 bytes OK
|
||||||
|
2026/05/01-09:12:52.798150 7f3ee77fe6c0 Delete type=0 #31
|
||||||
|
2026/05/01-09:12:52.798293 7f3ee77fe6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
2026/05/01-00:45:48.110687 7f3f35bff6c0 Delete type=3 #1
|
||||||
|
2026/05/01-00:49:08.823197 7f3ee77fe6c0 Level-0 table #29: started
|
||||||
|
2026/05/01-00:49:08.823234 7f3ee77fe6c0 Level-0 table #29: 0 bytes OK
|
||||||
|
2026/05/01-00:49:08.830411 7f3ee77fe6c0 Delete type=0 #27
|
||||||
|
2026/05/01-00:49:08.830628 7f3ee77fe6c0 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
Binary file not shown.
@@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"_id": "69Da9YvF9BfOV7oK",
|
||||||
|
"name": "Aide du systeme",
|
||||||
|
"folder": null,
|
||||||
|
"categories": [],
|
||||||
|
"sort": 0,
|
||||||
|
"_key": "!journal!69Da9YvF9BfOV7oK",
|
||||||
|
"ownership": {
|
||||||
|
"default": 0
|
||||||
|
},
|
||||||
|
"flags": {},
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"_id": "XM0eLkgKXPyskV65",
|
||||||
|
"name": "Guide",
|
||||||
|
"type": "text",
|
||||||
|
"title": {
|
||||||
|
"show": true,
|
||||||
|
"level": 1
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"format": 1,
|
||||||
|
"content": "<section>\n <h1>Donjon & Cie — Aide du systeme</h1>\n <p>Ce journal presente les principaux ecrans et usages du systeme FoundryVTT pour <strong>Donjon & Cie</strong>. Il suit l'organisation du jeu : employes, PNJ, objets, ressources magiques, jets et outils MJ.</p>\n</section>\n<section>\n <h2>1. Fiche Employe</h2>\n <p>La fiche <strong>Employe</strong> regroupe les informations essentielles du personnage : concept, anciennete, DV, PV, attaques, caracteristiques et inventaire. Les trois onglets organisent le jeu en <em>Combat & materiel</em>, <em>Magie & capacites</em> et <em>Profil & langues</em>.</p>\n <ul>\n <li><strong>DV</strong> et <strong>PV</strong> sont accessibles en haut de fiche.</li>\n <li>Les sections d'objets acceptent le glisser-deposer depuis le repertoire des items ou les compendiums.</li>\n <li>Les boutons d'action permettent de lancer un jet, les degats, ou publier un objet dans le chat.</li>\n </ul>\n <figure>\n <img src=\"systems/fvtt-donjon-et-cie/assets/help/employe-sheet.png\" alt=\"Fiche employe\" />\n <figcaption>La fiche Employe centralise combat, equipement et ressources.</figcaption>\n </figure>\n</section>\n<section>\n <h2>2. Magie, focus, chaos et capacites</h2>\n <p>L'onglet <strong>Magie & capacites</strong> rassemble les ressources du lanceur de sorts :</p>\n <ul>\n <li>le <strong>Rang</strong>, le <strong>Focus</strong> et le <strong>Chaos</strong> ;</li>\n <li>la <strong>Table du Chaos</strong> pour resoudre rapidement les incidents magiques ;</li>\n <li>la liste des <strong>Sortileges</strong>, avec les <strong>Capacites</strong> affichees juste en dessous.</li>\n </ul>\n <p>Les boutons de ligne permettent de lancer le sort, ses degats, ou de poster sa fiche dans le chat.</p>\n <figure>\n <img src=\"systems/fvtt-donjon-et-cie/assets/help/magie-capacites.png\" alt=\"Onglet magie et capacites\" />\n <figcaption>Les Capacites sont placees sous les Sortileges pour rester coherentes avec les regles et la lecture de fiche.</figcaption>\n </figure>\n</section>\n<section>\n <h2>3. Fiche PNJ</h2>\n <p>La fiche <strong>PNJ</strong> est optimisee pour le jeu rapide :</p>\n <ul>\n <li>valeurs de <strong>DV</strong>, <strong>PV</strong>, <strong>ARM</strong> et <strong>COU</strong> en acces direct ;</li>\n <li>liste d'<strong>attaques multiples</strong> editable ligne par ligne ;</li>\n <li>bouton de jet de degats sur chaque attaque.</li>\n </ul>\n <p>Le layout favorise le nom de l'attaque, avec des tooltips sur les champs pour garder une interface compacte.</p>\n <figure>\n <img src=\"systems/fvtt-donjon-et-cie/assets/help/pnj-sheet.png\" alt=\"Fiche PNJ\" />\n <figcaption>Un PNJ peut maintenant posseder plusieurs attaques distinctes.</figcaption>\n </figure>\n</section>\n<section>\n <h2>4. Paquetage de mission</h2>\n <p>Le MJ dispose d'un outil de <strong>Paquetage</strong> accessible depuis le haut du repertoire des acteurs. Il ouvre un dialogue permettant de choisir l'employe cible puis de lancer la dotation de debut de mission.</p>\n <ul>\n <li>Le systeme tire silencieusement sur les tables d'armes, armures et equipement divers.</li>\n <li>Les objets trouves sont ajoutes automatiquement a la fiche du personnage.</li>\n <li>Un message de synthese est publie dans le chat.</li>\n </ul>\n <figure>\n <img src=\"systems/fvtt-donjon-et-cie/assets/help/mission-pack-dialog.png\" alt=\"Dialogue de paquetage de mission\" />\n <figcaption>Le bouton Paquetage ouvre un dialogue MJ pour attribuer rapidement la dotation d'entree en mission.</figcaption>\n </figure>\n</section>\n<section>\n <h2>5. Jets et messages de chat</h2>\n <p>Les cartes de chat servent d'interface de resolution. On y retrouve selon les cas :</p>\n <ul>\n <li>les resultats de jets de caracteristique, d'attaque, de degats et de magie ;</li>\n <li>les usages de ressources a de d'usure ;</li>\n <li>les syntheses de paquetage et d'autres actions systeme.</li>\n </ul>\n <p>Quand un objet ou une action propose un bouton <em>Poster dans le chat</em>, cela permet de partager proprement l'information avec la table sans ouvrir la fiche du document.</p>\n</section>\n<section>\n <h2>6. Conseils d'utilisation</h2>\n <ul>\n <li>Utilisez le glisser-deposer pour equiper rapidement un employe.</li>\n <li>Gardez les PNJ ouverts pendant les scenes pour acceder vite a leurs attaques et defenses.</li>\n <li>Le sidebar <strong>Acteurs</strong> concentre les outils MJ utiles, notamment le paquetage de mission.</li>\n <li>Les compendiums du systeme contiennent l'equipement et les tables aleatoires servant de base au jeu.</li>\n </ul>\n</section>"
|
||||||
|
},
|
||||||
|
"system": {},
|
||||||
|
"image": {},
|
||||||
|
"video": {
|
||||||
|
"controls": true,
|
||||||
|
"volume": 0.5
|
||||||
|
},
|
||||||
|
"src": null,
|
||||||
|
"category": null,
|
||||||
|
"sort": 0,
|
||||||
|
"ownership": {
|
||||||
|
"default": -1
|
||||||
|
},
|
||||||
|
"flags": {},
|
||||||
|
"_key": "!journal.pages!69Da9YvF9BfOV7oK.XM0eLkgKXPyskV65"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -863,6 +863,24 @@
|
|||||||
.dnc-chat-card-favor {
|
.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%);
|
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-welcome {
|
||||||
|
border-color: rgba(139, 46, 23, 0.34);
|
||||||
|
background: linear-gradient(180deg, rgba(255, 250, 240, 0.84) 0%, rgba(239, 219, 179, 0.94) 100%), linear-gradient(135deg, #fffaf0 0%, #dcb772 100%);
|
||||||
|
}
|
||||||
|
.chat-welcome-intro {
|
||||||
|
font-size: 0.82rem;
|
||||||
|
line-height: 1.45;
|
||||||
|
}
|
||||||
|
.chat-welcome-link {
|
||||||
|
margin-top: 0.75rem;
|
||||||
|
padding: 0.6rem 0.8rem;
|
||||||
|
border: 1px solid rgba(139, 46, 23, 0.24);
|
||||||
|
border-radius: 12px;
|
||||||
|
background: rgba(139, 46, 23, 0.08);
|
||||||
|
}
|
||||||
|
.chat-welcome-link a.content-link {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
.dnc-chat-card-spell .chat-actions + .chat-actions {
|
.dnc-chat-card-spell .chat-actions + .chat-actions {
|
||||||
margin-top: 0.4rem;
|
margin-top: 0.4rem;
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
+12
@@ -52,6 +52,18 @@
|
|||||||
"PLAYER": "OBSERVER",
|
"PLAYER": "OBSERVER",
|
||||||
"ASSISTANT": "OWNER"
|
"ASSISTANT": "OWNER"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "JournalEntry",
|
||||||
|
"label": "Aide du système",
|
||||||
|
"name": "system-help",
|
||||||
|
"path": "packs/system-help",
|
||||||
|
"system": "fvtt-donjon-et-cie",
|
||||||
|
"flags": {},
|
||||||
|
"ownership": {
|
||||||
|
"PLAYER": "OBSERVER",
|
||||||
|
"ASSISTANT": "OWNER"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"documentTypes": {
|
"documentTypes": {
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<section class="dnc-chat-card dnc-chat-card-item dnc-chat-card-mission-pack">
|
||||||
|
<header class="chat-card-header">
|
||||||
|
<div class="chat-card-heading">
|
||||||
|
<p class="chat-card-kicker">{{localize "DNC.Chat.Kicker.Logistics"}}</p>
|
||||||
|
<h2>{{title}}</h2>
|
||||||
|
<p class="chat-card-subtitle">{{actorName}}</p>
|
||||||
|
</div>
|
||||||
|
<div class="chat-card-seal {{#if missingCount}}failure{{else}}success{{/if}}">
|
||||||
|
{{createdCount}}
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div class="chat-pill-row">
|
||||||
|
<span class="chat-pill success">{{localize "DNC.Macro.MissionPack.ItemsAdded"}} {{createdCount}}</span>
|
||||||
|
{{#if missingCount}}<span class="chat-pill failure">{{localize "DNC.Macro.MissionPack.ItemsMissing"}} {{missingCount}}</span>{{/if}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p class="chat-note">
|
||||||
|
{{#if missingCount}}
|
||||||
|
{{localize "DNC.Macro.MissionPack.PartialChatSummary"}}
|
||||||
|
{{else}}
|
||||||
|
{{localize "DNC.Macro.MissionPack.CompleteChatSummary"}}
|
||||||
|
{{/if}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul class="chat-details">
|
||||||
|
{{#each draws}}
|
||||||
|
<li>
|
||||||
|
<strong>{{this.label}}</strong> : {{this.display}}
|
||||||
|
{{#if this.missingSummary}}<br>{{localize "DNC.Macro.MissionPack.Missing"}} : {{this.missingSummary}}{{/if}}
|
||||||
|
</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<section class="dnc-chat-card dnc-chat-card-welcome">
|
||||||
|
<header class="chat-card-header">
|
||||||
|
<div class="chat-card-heading">
|
||||||
|
<p class="chat-card-kicker">{{localize "DNC.Welcome.Kicker"}}</p>
|
||||||
|
<h2>{{title}}</h2>
|
||||||
|
<p class="chat-card-subtitle">{{subtitle}}</p>
|
||||||
|
</div>
|
||||||
|
<div class="chat-card-seal success">
|
||||||
|
{{localize "DNC.Welcome.Seal"}}
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<p class="chat-note chat-welcome-intro">{{intro}}</p>
|
||||||
|
|
||||||
|
<ul class="chat-details chat-details-ornate">
|
||||||
|
{{#each bullets}}
|
||||||
|
<li>{{this}}</li>
|
||||||
|
{{/each}}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p class="chat-note chat-welcome-link">
|
||||||
|
<strong>{{helpLabel}}</strong>
|
||||||
|
{{#if helpLink}}
|
||||||
|
{{{helpLink}}}
|
||||||
|
{{else}}
|
||||||
|
{{helpFallback}}
|
||||||
|
{{/if}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="chat-note">
|
||||||
|
<strong>{{creditsLabel}}</strong> {{creditsText}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="chat-note">
|
||||||
|
<strong>{{officialLabel}}</strong>
|
||||||
|
<a href="{{officialUrl}}" target="_blank" rel="noopener">{{officialLinkText}}</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p class="chat-note">{{footer}}</p>
|
||||||
|
</section>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<div class="dnc-dialog-form">
|
||||||
|
<p>{{localize "DNC.Macro.MissionPack.DialogIntro"}}</p>
|
||||||
|
<label>
|
||||||
|
<span>{{localize "DNC.Macro.MissionPack.DialogActor"}}</span>
|
||||||
|
<select name="actorId">
|
||||||
|
{{selectOptions actorOptions selected=selectedActorId labelAttr="label" valueAttr="value" localize=false}}
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
import { compilePack, extractPack } from "@foundryvtt/foundryvtt-cli";
|
||||||
|
import { promises as fs } from "node:fs";
|
||||||
|
import path from "node:path";
|
||||||
|
|
||||||
|
const ROOT_DIR = process.cwd();
|
||||||
|
|
||||||
|
export class CompendiumsManager {
|
||||||
|
static async packToDistDir(srcDir = "packs_src", distDir = "packs", mode = "json") {
|
||||||
|
const yaml = mode === "yaml";
|
||||||
|
const packs = await fs.readdir(path.join(ROOT_DIR, srcDir));
|
||||||
|
for (const pack of packs) {
|
||||||
|
if (pack.startsWith(".")) continue;
|
||||||
|
|
||||||
|
const sourcePath = path.join(ROOT_DIR, srcDir, pack);
|
||||||
|
const targetPath = path.join(ROOT_DIR, distDir, pack);
|
||||||
|
await fs.rm(targetPath, { recursive: true, force: true });
|
||||||
|
console.log(`Packing ${pack}`);
|
||||||
|
await compilePack(sourcePath, targetPath, { yaml });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static async unpackToSrcDir(srcDir = "packs_src", distDir = "packs", mode = "json") {
|
||||||
|
const yaml = mode === "yaml";
|
||||||
|
const packs = await fs.readdir(path.join(ROOT_DIR, distDir));
|
||||||
|
for (const pack of packs) {
|
||||||
|
if (pack.startsWith(".")) continue;
|
||||||
|
|
||||||
|
const sourcePath = path.join(ROOT_DIR, distDir, pack);
|
||||||
|
const targetPath = path.join(ROOT_DIR, srcDir, pack);
|
||||||
|
await fs.mkdir(targetPath, { recursive: true });
|
||||||
|
|
||||||
|
const existingFiles = await fs.readdir(targetPath);
|
||||||
|
for (const file of existingFiles) {
|
||||||
|
await fs.unlink(path.join(targetPath, file));
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`Unpacking ${pack}`);
|
||||||
|
await extractPack(sourcePath, targetPath, {
|
||||||
|
yaml,
|
||||||
|
transformName: (doc) => CompendiumsManager.transformName(doc, yaml)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static transformName(doc, yaml) {
|
||||||
|
const safeName = (doc.name ?? doc._id ?? "document").replace(/[^a-zA-Z0-9_-]+/g, "_");
|
||||||
|
const type = doc._key?.split("!")[1] ?? doc.type ?? "document";
|
||||||
|
const extension = yaml ? "yml" : "json";
|
||||||
|
return `${type}_${safeName}_${doc._id}.${extension}`;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import { CompendiumsManager } from "./CompendiumsManager.mjs";
|
||||||
|
|
||||||
|
await CompendiumsManager.packToDistDir();
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
import { CompendiumsManager } from "./CompendiumsManager.mjs";
|
||||||
|
|
||||||
|
await CompendiumsManager.unpackToSrcDir();
|
||||||
Reference in New Issue
Block a user