@7h3laughingman/pf2e-helpers 7.10.3 → 7.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/utilities/index.d.ts +5 -6
  2. package/dist/utilities/index.js +4 -0
  3. package/dist/utilities/notes.d.ts +6 -0
  4. package/dist/utilities/notes.js +26 -0
  5. package/dist/zod/actor/actions.d.ts +4 -0
  6. package/dist/zod/actor/actions.js +3 -0
  7. package/dist/zod/actor/base.d.ts +13 -0
  8. package/dist/zod/actor/base.js +13 -0
  9. package/dist/zod/actor/creature.d.ts +11 -0
  10. package/dist/zod/actor/creature.js +11 -0
  11. package/dist/zod/actor/index.d.ts +4 -0
  12. package/dist/zod/actor/index.js +4 -0
  13. package/dist/zod/actor/modifiers.d.ts +3 -0
  14. package/dist/zod/actor/modifiers.js +2 -0
  15. package/dist/zod/constants.d.ts +60 -0
  16. package/dist/zod/constants.js +61 -0
  17. package/dist/zod/data.d.ts +17 -0
  18. package/dist/zod/data.js +17 -0
  19. package/dist/zod/document.d.ts +4 -0
  20. package/dist/zod/document.js +31 -0
  21. package/dist/zod/index.d.ts +8 -0
  22. package/dist/zod/index.js +8 -0
  23. package/dist/zod/item/armor.d.ts +9 -0
  24. package/dist/zod/item/armor.js +69 -0
  25. package/dist/zod/item/base.d.ts +5 -0
  26. package/dist/zod/item/base.js +22 -0
  27. package/dist/zod/item/consumable.d.ts +5 -0
  28. package/dist/zod/item/consumable.js +5 -0
  29. package/dist/zod/item/equipment.d.ts +3 -0
  30. package/dist/zod/item/equipment.js +3 -0
  31. package/dist/zod/item/index.d.ts +9 -0
  32. package/dist/zod/item/index.js +9 -0
  33. package/dist/zod/item/melee.d.ts +4 -0
  34. package/dist/zod/item/melee.js +4 -0
  35. package/dist/zod/item/physical.d.ts +17 -0
  36. package/dist/zod/item/physical.js +30 -0
  37. package/dist/zod/item/shield.d.ts +4 -0
  38. package/dist/zod/item/shield.js +4 -0
  39. package/dist/zod/item/spell.d.ts +4 -0
  40. package/dist/zod/item/spell.js +4 -0
  41. package/dist/zod/item/types.d.ts +5 -0
  42. package/dist/zod/item/types.js +8 -0
  43. package/dist/zod/item/weapon.d.ts +13 -0
  44. package/dist/zod/item/weapon.js +102 -0
  45. package/dist/zod/rules/actor-traits.d.ts +29 -0
  46. package/dist/zod/rules/actor-traits.js +13 -0
  47. package/dist/zod/rules/adjust-degree-of-success.d.ts +17 -0
  48. package/dist/zod/rules/adjust-degree-of-success.js +18 -0
  49. package/dist/zod/rules/adjust-modifier.d.ts +21 -0
  50. package/dist/zod/rules/adjust-modifier.js +14 -0
  51. package/dist/zod/rules/adjust-strike.d.ts +17 -0
  52. package/dist/zod/rules/adjust-strike.js +11 -0
  53. package/dist/zod/rules/ae-like.d.ts +23 -0
  54. package/dist/zod/rules/ae-like.js +13 -0
  55. package/dist/zod/rules/aura.d.ts +97 -0
  56. package/dist/zod/rules/aura.js +57 -0
  57. package/dist/zod/rules/base-speed.d.ts +15 -0
  58. package/dist/zod/rules/base-speed.js +7 -0
  59. package/dist/zod/rules/base.d.ts +27 -0
  60. package/dist/zod/rules/base.js +26 -0
  61. package/dist/zod/rules/battle-form.d.ts +13 -0
  62. package/dist/zod/rules/battle-form.js +5 -0
  63. package/dist/zod/rules/choice-set.d.ts +99 -0
  64. package/dist/zod/rules/choice-set.js +50 -0
  65. package/dist/zod/rules/crafting-ability.d.ts +48 -0
  66. package/dist/zod/rules/crafting-ability.js +30 -0
  67. package/dist/zod/rules/creature-size.d.ts +18 -0
  68. package/dist/zod/rules/creature-size.js +10 -0
  69. package/dist/zod/rules/crit-spec.d.ts +26 -0
  70. package/dist/zod/rules/crit-spec.js +22 -0
  71. package/dist/zod/rules/damage-alteration.d.ts +20 -0
  72. package/dist/zod/rules/damage-alteration.js +12 -0
  73. package/dist/zod/rules/damage-dice.d.ts +29 -0
  74. package/dist/zod/rules/damage-dice.js +24 -0
  75. package/dist/zod/rules/dexterity-modifier-cap.d.ts +14 -0
  76. package/dist/zod/rules/dexterity-modifier-cap.js +6 -0
  77. package/dist/zod/rules/ephemeral-effect.d.ts +23 -0
  78. package/dist/zod/rules/ephemeral-effect.js +11 -0
  79. package/dist/zod/rules/fast-healing.d.ts +17 -0
  80. package/dist/zod/rules/fast-healing.js +9 -0
  81. package/dist/zod/rules/flat-modifier.d.ts +28 -0
  82. package/dist/zod/rules/flat-modifier.js +21 -0
  83. package/dist/zod/rules/grant-item.d.ts +30 -0
  84. package/dist/zod/rules/grant-item.js +20 -0
  85. package/dist/zod/rules/index.d.ts +38 -0
  86. package/dist/zod/rules/index.js +38 -0
  87. package/dist/zod/rules/item-alteration.d.ts +29 -0
  88. package/dist/zod/rules/item-alteration.js +52 -0
  89. package/dist/zod/rules/iwr.d.ts +93 -0
  90. package/dist/zod/rules/iwr.js +33 -0
  91. package/dist/zod/rules/lose-hit-points.d.ts +16 -0
  92. package/dist/zod/rules/lose-hit-points.js +8 -0
  93. package/dist/zod/rules/martial-proficiency.d.ts +19 -0
  94. package/dist/zod/rules/martial-proficiency.js +12 -0
  95. package/dist/zod/rules/multiple-attack-penalty.d.ts +15 -0
  96. package/dist/zod/rules/multiple-attack-penalty.js +7 -0
  97. package/dist/zod/rules/roll-note.d.ts +19 -0
  98. package/dist/zod/rules/roll-note.js +12 -0
  99. package/dist/zod/rules/roll-options.d.ts +40 -0
  100. package/dist/zod/rules/roll-options.js +26 -0
  101. package/dist/zod/rules/roll-twice.d.ts +16 -0
  102. package/dist/zod/rules/roll-twice.js +8 -0
  103. package/dist/zod/rules/sense.d.ts +17 -0
  104. package/dist/zod/rules/sense.js +9 -0
  105. package/dist/zod/rules/special-resource.d.ts +18 -0
  106. package/dist/zod/rules/special-resource.js +11 -0
  107. package/dist/zod/rules/special-statistic.d.ts +25 -0
  108. package/dist/zod/rules/special-statistic.js +23 -0
  109. package/dist/zod/rules/strike.d.ts +43 -0
  110. package/dist/zod/rules/strike.js +43 -0
  111. package/dist/zod/rules/substitute-roll.d.ts +18 -0
  112. package/dist/zod/rules/substitute-roll.js +11 -0
  113. package/dist/zod/rules/temp-hp.d.ts +18 -0
  114. package/dist/zod/rules/temp-hp.js +12 -0
  115. package/dist/zod/rules/token-effect-icon.d.ts +14 -0
  116. package/dist/zod/rules/token-effect-icon.js +6 -0
  117. package/dist/zod/rules/token-image.d.ts +34 -0
  118. package/dist/zod/rules/token-image.js +34 -0
  119. package/dist/zod/rules/token-light.d.ts +37 -0
  120. package/dist/zod/rules/token-light.js +35 -0
  121. package/dist/zod/rules/token-mark.d.ts +14 -0
  122. package/dist/zod/rules/token-mark.js +7 -0
  123. package/dist/zod/rules/token-name.d.ts +14 -0
  124. package/dist/zod/rules/token-name.js +6 -0
  125. package/dist/zod/system/damage.d.ts +13 -0
  126. package/dist/zod/system/damage.js +11 -0
  127. package/dist/zod/system/degree-of-success.d.ts +5 -0
  128. package/dist/zod/system/degree-of-success.js +14 -0
  129. package/dist/zod/system/index.d.ts +3 -0
  130. package/dist/zod/system/index.js +3 -0
  131. package/dist/zod/system/predication.d.ts +4 -0
  132. package/dist/zod/system/predication.js +31 -0
  133. package/dist/zod/type-guards.d.ts +2 -0
  134. package/dist/zod/type-guards.js +3 -0
  135. package/dist/zod/types.d.ts +5 -0
  136. package/dist/zod/types.js +9 -0
  137. package/package.json +5 -3
@@ -1,10 +1,5 @@
1
- import { ActorPF2e, ItemPF2e, MacroPF2e, ScenePF2e, UserPF2e } from "@7h3laughingman/pf2e-types";
2
- import CompendiumCollection = foundry.documents.collections.CompendiumCollection;
1
+ import { ActorPF2e, UserPF2e } from "@7h3laughingman/pf2e-types";
3
2
  declare module "@7h3laughingman/foundry-helpers/utilities" {
4
- function isCompendiumPack<T extends ActorPF2e<null>>(pack: unknown, type: "Actor"): pack is CompendiumCollection<T>;
5
- function isCompendiumPack<T extends ItemPF2e<null>>(pack: unknown, type: "Item"): pack is CompendiumCollection<T>;
6
- function isCompendiumPack<T extends MacroPF2e>(pack: unknown, type: "Macro"): pack is CompendiumCollection<T>;
7
- function isCompendiumPack<T extends ScenePF2e>(pack: unknown, type: "Scene"): pack is CompendiumCollection<T>;
8
3
  function getCurrentUser(): UserPF2e;
9
4
  function userIsGM(user?: UserPF2e): boolean;
10
5
  function getPrimaryUpdater(actor: ActorPF2e): UserPF2e | null;
@@ -13,4 +8,8 @@ declare module "@7h3laughingman/foundry-helpers/utilities" {
13
8
  function isPrimaryOwner(actor: ActorPF2e, user?: UserPF2e): boolean;
14
9
  }
15
10
  export * from "@7h3laughingman/foundry-helpers/utilities";
11
+ export * from "./check.js";
16
12
  export * from "./damage.js";
13
+ export * from "./notes.js";
14
+ export * from "./roll.js";
15
+ export * from "./system.js";
@@ -1,2 +1,6 @@
1
1
  export * from "@7h3laughingman/foundry-helpers/utilities";
2
+ export * from "./check.js";
2
3
  export * from "./damage.js";
4
+ export * from "./notes.js";
5
+ export * from "./roll.js";
6
+ export * from "./system.js";
@@ -0,0 +1,6 @@
1
+ import { UserVisibility } from "@7h3laughingman/pf2e-types/scripts/ui/user-visibility.js";
2
+ export declare function notesToHTML(notes: {
3
+ title?: string | null;
4
+ text: string;
5
+ visibility?: UserVisibility | null;
6
+ }[]): string | undefined;
@@ -0,0 +1,26 @@
1
+ import { createHTMLElement } from "@7h3laughingman/foundry-helpers/utilities";
2
+ export function notesToHTML(notes) {
3
+ function toHTML({ title, text, visibility }) {
4
+ const element = createHTMLElement("li", {
5
+ classes: ["roll-note"],
6
+ dataset: {
7
+ visibility: visibility
8
+ },
9
+ innerHTML: game.i18n.localize(text)
10
+ });
11
+ if (element.childNodes.length === 1 && element.firstChild instanceof HTMLElement) {
12
+ element.innerHTML = element.firstChild.innerHTML;
13
+ }
14
+ if (title) {
15
+ const strong = createHTMLElement("strong", { innerHTML: game.i18n.localize(title) });
16
+ element.prepend(strong, " ");
17
+ }
18
+ return element;
19
+ }
20
+ if (notes.length === 0)
21
+ return undefined;
22
+ return createHTMLElement("ul", {
23
+ classes: ["notes"],
24
+ children: [...notes.flatMap((note) => ["\n", toHTML(note), "\n"])]
25
+ }).outerHTML;
26
+ }
@@ -0,0 +1,4 @@
1
+ import { ActionCost, ActionSection } from "@7h3laughingman/pf2e-types/module/actor/actions/types.js";
2
+ import * as z from "zod";
3
+ export declare const zActionCost: z.ZodLiteral<ActionCost>;
4
+ export declare const zActionSection: z.ZodLiteral<ActionSection>;
@@ -0,0 +1,3 @@
1
+ import * as z from "zod";
2
+ export const zActionCost = z.literal(["free", "reaction", 0, 1, 2, 3]);
3
+ export const zActionSection = z.literal(["basic", "skill", "specialty-basic"]);
@@ -0,0 +1,13 @@
1
+ import { ActorAlliance, MovementType } from "@7h3laughingman/pf2e-types/module/actor/types.js";
2
+ import * as z from "zod";
3
+ export declare const zActorType: z.ZodCustom<"character" | "army" | "npc" | "familiar" | "party" | "hazard" | "loot" | "vehicle", "character" | "army" | "npc" | "familiar" | "party" | "hazard" | "loot" | "vehicle">;
4
+ export declare const zAttributeString: z.ZodCustom<"str" | "dex" | "con" | "int" | "wis" | "cha", "str" | "dex" | "con" | "int" | "wis" | "cha">;
5
+ export declare const zSkillSlug: z.ZodCustom<"performance" | "athletics" | "deception" | "stealth" | "nature" | "crafting" | "acrobatics" | "arcana" | "diplomacy" | "intimidation" | "medicine" | "occultism" | "religion" | "society" | "survival" | "thievery", "performance" | "athletics" | "deception" | "stealth" | "nature" | "crafting" | "acrobatics" | "arcana" | "diplomacy" | "intimidation" | "medicine" | "occultism" | "religion" | "society" | "survival" | "thievery">;
6
+ export declare const zActorAlliance: z.ZodLiteral<ActorAlliance>;
7
+ export declare const zSaveType: z.ZodCustom<"fortitude" | "reflex" | "will", "fortitude" | "reflex" | "will">;
8
+ export declare const zDCSlug: z.ZodUnion<readonly [z.ZodLiteral<"perception" | "armor" | "ac">, z.ZodCustom<"fortitude" | "reflex" | "will", "fortitude" | "reflex" | "will">, z.ZodCustom<"performance" | "athletics" | "deception" | "stealth" | "nature" | "crafting" | "acrobatics" | "arcana" | "diplomacy" | "intimidation" | "medicine" | "occultism" | "religion" | "society" | "survival" | "thievery", "performance" | "athletics" | "deception" | "stealth" | "nature" | "crafting" | "acrobatics" | "arcana" | "diplomacy" | "intimidation" | "medicine" | "occultism" | "religion" | "society" | "survival" | "thievery">]>;
9
+ export declare const zMovementType: z.ZodLiteral<MovementType>;
10
+ export declare const zImmunityType: z.ZodCustom<"time" | "custom" | "controlled" | "light" | "force" | "blinded" | "arcane" | "divine" | "occult" | "primal" | "alchemical" | "auditory" | "healing" | "illusion" | "plant" | "mental" | "radiation" | "spirit" | "vitality" | "void" | "holy" | "unholy" | "acid" | "cold" | "electricity" | "fire" | "sonic" | "air" | "earth" | "metal" | "water" | "wood" | "curse" | "emotion" | "inhaled" | "olfactory" | "poison" | "polymorph" | "possession" | "scrying" | "sleep" | "visual" | "detection" | "disease" | "prediction" | "trip" | "physical" | "abysium" | "adamantine" | "dawnsilver" | "djezet" | "duskwood" | "inubrix" | "noqual" | "orichalcum" | "peachwood" | "siccatite" | "silver" | "cold-iron" | "clumsy" | "confused" | "dazzled" | "deafened" | "doomed" | "drained" | "enfeebled" | "fascinated" | "fatigued" | "fleeing" | "frightened" | "grabbed" | "immobilized" | "off-guard" | "paralyzed" | "petrified" | "prone" | "restrained" | "sickened" | "slowed" | "stunned" | "stupefied" | "unconscious" | "wounded" | "persistent-damage" | "bleed" | "bludgeoning" | "piercing" | "slashing" | "aging" | "area-damage" | "critical-hits" | "death-effects" | "energy" | "fear-effects" | "fortune-effects" | "magic" | "misfortune-effects" | "non-magical" | "nonlethal-attacks" | "object-immunities" | "precision" | "salt-water" | "spell-deflection" | "swarm-attacks" | "swarm-mind" | "unarmed-attacks", "time" | "custom" | "controlled" | "light" | "force" | "blinded" | "arcane" | "divine" | "occult" | "primal" | "alchemical" | "auditory" | "healing" | "illusion" | "plant" | "mental" | "radiation" | "spirit" | "vitality" | "void" | "holy" | "unholy" | "acid" | "cold" | "electricity" | "fire" | "sonic" | "air" | "earth" | "metal" | "water" | "wood" | "curse" | "emotion" | "inhaled" | "olfactory" | "poison" | "polymorph" | "possession" | "scrying" | "sleep" | "visual" | "detection" | "disease" | "prediction" | "trip" | "physical" | "abysium" | "adamantine" | "dawnsilver" | "djezet" | "duskwood" | "inubrix" | "noqual" | "orichalcum" | "peachwood" | "siccatite" | "silver" | "cold-iron" | "clumsy" | "confused" | "dazzled" | "deafened" | "doomed" | "drained" | "enfeebled" | "fascinated" | "fatigued" | "fleeing" | "frightened" | "grabbed" | "immobilized" | "off-guard" | "paralyzed" | "petrified" | "prone" | "restrained" | "sickened" | "slowed" | "stunned" | "stupefied" | "unconscious" | "wounded" | "persistent-damage" | "bleed" | "bludgeoning" | "piercing" | "slashing" | "aging" | "area-damage" | "critical-hits" | "death-effects" | "energy" | "fear-effects" | "fortune-effects" | "magic" | "misfortune-effects" | "non-magical" | "nonlethal-attacks" | "object-immunities" | "precision" | "salt-water" | "spell-deflection" | "swarm-attacks" | "swarm-mind" | "unarmed-attacks">;
11
+ export declare const zWeaknessType: z.ZodCustom<"time" | "custom" | "light" | "force" | "arcane" | "divine" | "occult" | "primal" | "alchemical" | "magical" | "mythic" | "plant" | "mental" | "radiation" | "spirit" | "vitality" | "void" | "holy" | "unholy" | "acid" | "cold" | "electricity" | "fire" | "sonic" | "air" | "earth" | "metal" | "water" | "wood" | "emotion" | "poison" | "physical" | "abysium" | "adamantine" | "dawnsilver" | "djezet" | "duskwood" | "inubrix" | "noqual" | "orichalcum" | "peachwood" | "siccatite" | "silver" | "cold-iron" | "persistent-damage" | "bleed" | "bludgeoning" | "piercing" | "slashing" | "weapons" | "spells" | "glass" | "vorpal" | "area-damage" | "critical-hits" | "energy" | "non-magical" | "nonlethal-attacks" | "precision" | "salt-water" | "unarmed-attacks" | "all-damage" | "arrow-vulnerability" | "axe-vulnerability" | "ghost-touch" | "salt" | "splash-damage" | "vampire-weaknesses" | "vorpal-fear" | "vulnerable-to-sunlight" | "weapons-shedding-bright-light", "time" | "custom" | "light" | "force" | "arcane" | "divine" | "occult" | "primal" | "alchemical" | "magical" | "mythic" | "plant" | "mental" | "radiation" | "spirit" | "vitality" | "void" | "holy" | "unholy" | "acid" | "cold" | "electricity" | "fire" | "sonic" | "air" | "earth" | "metal" | "water" | "wood" | "emotion" | "poison" | "physical" | "abysium" | "adamantine" | "dawnsilver" | "djezet" | "duskwood" | "inubrix" | "noqual" | "orichalcum" | "peachwood" | "siccatite" | "silver" | "cold-iron" | "persistent-damage" | "bleed" | "bludgeoning" | "piercing" | "slashing" | "weapons" | "spells" | "glass" | "vorpal" | "area-damage" | "critical-hits" | "energy" | "non-magical" | "nonlethal-attacks" | "precision" | "salt-water" | "unarmed-attacks" | "all-damage" | "arrow-vulnerability" | "axe-vulnerability" | "ghost-touch" | "salt" | "splash-damage" | "vampire-weaknesses" | "vorpal-fear" | "vulnerable-to-sunlight" | "weapons-shedding-bright-light">;
12
+ export declare const zResistanceType: z.ZodCustom<"time" | "custom" | "light" | "force" | "arcane" | "divine" | "occult" | "primal" | "alchemical" | "magical" | "mythic" | "plant" | "mental" | "nonlethal" | "radiation" | "spirit" | "vitality" | "void" | "holy" | "unholy" | "acid" | "cold" | "electricity" | "fire" | "sonic" | "air" | "earth" | "metal" | "water" | "wood" | "poison" | "physical" | "abysium" | "adamantine" | "dawnsilver" | "djezet" | "duskwood" | "inubrix" | "noqual" | "orichalcum" | "peachwood" | "siccatite" | "silver" | "cold-iron" | "persistent-damage" | "bleed" | "bludgeoning" | "piercing" | "slashing" | "weapons" | "spells" | "vorpal" | "area-damage" | "critical-hits" | "energy" | "non-magical" | "nonlethal-attacks" | "precision" | "salt-water" | "unarmed-attacks" | "all-damage" | "ghost-touch" | "salt" | "weapons-shedding-bright-light" | "axes" | "damage-from-spells" | "protean-anatomy" | "vorpal-adamantine", "time" | "custom" | "light" | "force" | "arcane" | "divine" | "occult" | "primal" | "alchemical" | "magical" | "mythic" | "plant" | "mental" | "nonlethal" | "radiation" | "spirit" | "vitality" | "void" | "holy" | "unholy" | "acid" | "cold" | "electricity" | "fire" | "sonic" | "air" | "earth" | "metal" | "water" | "wood" | "poison" | "physical" | "abysium" | "adamantine" | "dawnsilver" | "djezet" | "duskwood" | "inubrix" | "noqual" | "orichalcum" | "peachwood" | "siccatite" | "silver" | "cold-iron" | "persistent-damage" | "bleed" | "bludgeoning" | "piercing" | "slashing" | "weapons" | "spells" | "vorpal" | "area-damage" | "critical-hits" | "energy" | "non-magical" | "nonlethal-attacks" | "precision" | "salt-water" | "unarmed-attacks" | "all-damage" | "ghost-touch" | "salt" | "weapons-shedding-bright-light" | "axes" | "damage-from-spells" | "protean-anatomy" | "vorpal-adamantine">;
13
+ export declare const zIWRType: z.ZodUnion<readonly [z.ZodCustom<"time" | "custom" | "controlled" | "light" | "force" | "blinded" | "arcane" | "divine" | "occult" | "primal" | "alchemical" | "auditory" | "healing" | "illusion" | "plant" | "mental" | "radiation" | "spirit" | "vitality" | "void" | "holy" | "unholy" | "acid" | "cold" | "electricity" | "fire" | "sonic" | "air" | "earth" | "metal" | "water" | "wood" | "curse" | "emotion" | "inhaled" | "olfactory" | "poison" | "polymorph" | "possession" | "scrying" | "sleep" | "visual" | "detection" | "disease" | "prediction" | "trip" | "physical" | "abysium" | "adamantine" | "dawnsilver" | "djezet" | "duskwood" | "inubrix" | "noqual" | "orichalcum" | "peachwood" | "siccatite" | "silver" | "cold-iron" | "clumsy" | "confused" | "dazzled" | "deafened" | "doomed" | "drained" | "enfeebled" | "fascinated" | "fatigued" | "fleeing" | "frightened" | "grabbed" | "immobilized" | "off-guard" | "paralyzed" | "petrified" | "prone" | "restrained" | "sickened" | "slowed" | "stunned" | "stupefied" | "unconscious" | "wounded" | "persistent-damage" | "bleed" | "bludgeoning" | "piercing" | "slashing" | "aging" | "area-damage" | "critical-hits" | "death-effects" | "energy" | "fear-effects" | "fortune-effects" | "magic" | "misfortune-effects" | "non-magical" | "nonlethal-attacks" | "object-immunities" | "precision" | "salt-water" | "spell-deflection" | "swarm-attacks" | "swarm-mind" | "unarmed-attacks", "time" | "custom" | "controlled" | "light" | "force" | "blinded" | "arcane" | "divine" | "occult" | "primal" | "alchemical" | "auditory" | "healing" | "illusion" | "plant" | "mental" | "radiation" | "spirit" | "vitality" | "void" | "holy" | "unholy" | "acid" | "cold" | "electricity" | "fire" | "sonic" | "air" | "earth" | "metal" | "water" | "wood" | "curse" | "emotion" | "inhaled" | "olfactory" | "poison" | "polymorph" | "possession" | "scrying" | "sleep" | "visual" | "detection" | "disease" | "prediction" | "trip" | "physical" | "abysium" | "adamantine" | "dawnsilver" | "djezet" | "duskwood" | "inubrix" | "noqual" | "orichalcum" | "peachwood" | "siccatite" | "silver" | "cold-iron" | "clumsy" | "confused" | "dazzled" | "deafened" | "doomed" | "drained" | "enfeebled" | "fascinated" | "fatigued" | "fleeing" | "frightened" | "grabbed" | "immobilized" | "off-guard" | "paralyzed" | "petrified" | "prone" | "restrained" | "sickened" | "slowed" | "stunned" | "stupefied" | "unconscious" | "wounded" | "persistent-damage" | "bleed" | "bludgeoning" | "piercing" | "slashing" | "aging" | "area-damage" | "critical-hits" | "death-effects" | "energy" | "fear-effects" | "fortune-effects" | "magic" | "misfortune-effects" | "non-magical" | "nonlethal-attacks" | "object-immunities" | "precision" | "salt-water" | "spell-deflection" | "swarm-attacks" | "swarm-mind" | "unarmed-attacks">, z.ZodCustom<"time" | "custom" | "light" | "force" | "arcane" | "divine" | "occult" | "primal" | "alchemical" | "magical" | "mythic" | "plant" | "mental" | "radiation" | "spirit" | "vitality" | "void" | "holy" | "unholy" | "acid" | "cold" | "electricity" | "fire" | "sonic" | "air" | "earth" | "metal" | "water" | "wood" | "emotion" | "poison" | "physical" | "abysium" | "adamantine" | "dawnsilver" | "djezet" | "duskwood" | "inubrix" | "noqual" | "orichalcum" | "peachwood" | "siccatite" | "silver" | "cold-iron" | "persistent-damage" | "bleed" | "bludgeoning" | "piercing" | "slashing" | "weapons" | "spells" | "glass" | "vorpal" | "area-damage" | "critical-hits" | "energy" | "non-magical" | "nonlethal-attacks" | "precision" | "salt-water" | "unarmed-attacks" | "all-damage" | "arrow-vulnerability" | "axe-vulnerability" | "ghost-touch" | "salt" | "splash-damage" | "vampire-weaknesses" | "vorpal-fear" | "vulnerable-to-sunlight" | "weapons-shedding-bright-light", "time" | "custom" | "light" | "force" | "arcane" | "divine" | "occult" | "primal" | "alchemical" | "magical" | "mythic" | "plant" | "mental" | "radiation" | "spirit" | "vitality" | "void" | "holy" | "unholy" | "acid" | "cold" | "electricity" | "fire" | "sonic" | "air" | "earth" | "metal" | "water" | "wood" | "emotion" | "poison" | "physical" | "abysium" | "adamantine" | "dawnsilver" | "djezet" | "duskwood" | "inubrix" | "noqual" | "orichalcum" | "peachwood" | "siccatite" | "silver" | "cold-iron" | "persistent-damage" | "bleed" | "bludgeoning" | "piercing" | "slashing" | "weapons" | "spells" | "glass" | "vorpal" | "area-damage" | "critical-hits" | "energy" | "non-magical" | "nonlethal-attacks" | "precision" | "salt-water" | "unarmed-attacks" | "all-damage" | "arrow-vulnerability" | "axe-vulnerability" | "ghost-touch" | "salt" | "splash-damage" | "vampire-weaknesses" | "vorpal-fear" | "vulnerable-to-sunlight" | "weapons-shedding-bright-light">, z.ZodCustom<"time" | "custom" | "light" | "force" | "arcane" | "divine" | "occult" | "primal" | "alchemical" | "magical" | "mythic" | "plant" | "mental" | "nonlethal" | "radiation" | "spirit" | "vitality" | "void" | "holy" | "unholy" | "acid" | "cold" | "electricity" | "fire" | "sonic" | "air" | "earth" | "metal" | "water" | "wood" | "poison" | "physical" | "abysium" | "adamantine" | "dawnsilver" | "djezet" | "duskwood" | "inubrix" | "noqual" | "orichalcum" | "peachwood" | "siccatite" | "silver" | "cold-iron" | "persistent-damage" | "bleed" | "bludgeoning" | "piercing" | "slashing" | "weapons" | "spells" | "vorpal" | "area-damage" | "critical-hits" | "energy" | "non-magical" | "nonlethal-attacks" | "precision" | "salt-water" | "unarmed-attacks" | "all-damage" | "ghost-touch" | "salt" | "weapons-shedding-bright-light" | "axes" | "damage-from-spells" | "protean-anatomy" | "vorpal-adamantine", "time" | "custom" | "light" | "force" | "arcane" | "divine" | "occult" | "primal" | "alchemical" | "magical" | "mythic" | "plant" | "mental" | "nonlethal" | "radiation" | "spirit" | "vitality" | "void" | "holy" | "unholy" | "acid" | "cold" | "electricity" | "fire" | "sonic" | "air" | "earth" | "metal" | "water" | "wood" | "poison" | "physical" | "abysium" | "adamantine" | "dawnsilver" | "djezet" | "duskwood" | "inubrix" | "noqual" | "orichalcum" | "peachwood" | "siccatite" | "silver" | "cold-iron" | "persistent-damage" | "bleed" | "bludgeoning" | "piercing" | "slashing" | "weapons" | "spells" | "vorpal" | "area-damage" | "critical-hits" | "energy" | "non-magical" | "nonlethal-attacks" | "precision" | "salt-water" | "unarmed-attacks" | "all-damage" | "ghost-touch" | "salt" | "weapons-shedding-bright-light" | "axes" | "damage-from-spells" | "protean-anatomy" | "vorpal-adamantine">]>;
@@ -0,0 +1,13 @@
1
+ import * as R from "remeda";
2
+ import * as z from "zod";
3
+ export const zActorType = z.custom((data) => R.isString(data) && Object.hasOwn(CONFIG.PF2E.Actor.documentClasses, data));
4
+ export const zAttributeString = z.custom((data) => R.isString(data) && Object.hasOwn(CONFIG.PF2E.abilities, data));
5
+ export const zSkillSlug = z.custom((data) => R.isString(data) && Object.hasOwn(CONFIG.PF2E.skills, data));
6
+ export const zActorAlliance = z.literal(["party", "opposition", null]);
7
+ export const zSaveType = z.custom((data) => R.isString(data) && Object.hasOwn(CONFIG.PF2E.saves, data));
8
+ export const zDCSlug = z.union([z.literal(["ac", "armor", "perception"]), zSaveType, zSkillSlug]);
9
+ export const zMovementType = z.literal(["land", "burrow", "climb", "fly", "swim"]);
10
+ export const zImmunityType = z.custom((data) => R.isString(data) && Object.hasOwn(CONFIG.PF2E.immunityTypes, data));
11
+ export const zWeaknessType = z.custom((data) => R.isString(data) && Object.hasOwn(CONFIG.PF2E.weaknessTypes, data));
12
+ export const zResistanceType = z.custom((data) => R.isString(data) && Object.hasOwn(CONFIG.PF2E.resistanceTypes, data));
13
+ export const zIWRType = z.union([zImmunityType, zWeaknessType, zResistanceType]);
@@ -0,0 +1,11 @@
1
+ import { CreatureActorType, ModeOfBeing, SenseAcuity, SpecialVisionType } from "@7h3laughingman/pf2e-types/module/actor/creature/types.js";
2
+ import * as z from "zod";
3
+ export declare const zCreatureActorType: z.ZodLiteral<CreatureActorType>;
4
+ export declare const zCreatureTrait: z.ZodCustom<"time" | "div" | "monitor" | "light" | "force" | "android" | "construct" | "arcane" | "divine" | "occult" | "primal" | "alchemical" | "clockwork" | "illusion" | "mythic" | "plant" | "tech" | "mental" | "spirit" | "vitality" | "void" | "holy" | "unholy" | "acid" | "cold" | "electricity" | "fire" | "sonic" | "air" | "earth" | "metal" | "water" | "wood" | "fey" | "kobold" | "poison" | "beast" | "dream" | "eidolon" | "fungus" | "incorporeal" | "shadow" | "summoned" | "aiuvarin" | "anadi" | "aphorite" | "ardande" | "astrazoan" | "athamaru" | "automaton" | "awakened-animal" | "azarketi" | "barathu" | "beastkin" | "borai" | "bugbear" | "catfolk" | "centaur" | "changeling" | "conrasu" | "contemplative" | "corpsefolk" | "dhampir" | "dragonblood" | "dragonet" | "dragonkin" | "dromaar" | "duskwalker" | "dwarf" | "elebrian" | "elf" | "fetchling" | "fleshwarp" | "ganzi" | "geniekin" | "ghoran" | "gnoll" | "gnome" | "goblin" | "goloma" | "grippli" | "halfling" | "hobgoblin" | "human" | "hungerseed" | "ikeshti" | "jotunborn" | "kalo" | "kasatha" | "kashrishi" | "khizar" | "kitsune" | "lashunta" | "leshy" | "lizardfolk" | "merfolk" | "minotaur" | "naari" | "nagaji" | "nephilim" | "orc" | "oread" | "pahtra" | "poppet" | "prismeni" | "ratfolk" | "reflection" | "samsaran" | "sarangay" | "sarcesian" | "shirren" | "shisk" | "shobhad" | "shoony" | "skeleton" | "skittermander" | "sprite" | "strix" | "suli" | "surki" | "sylph" | "talos" | "tanuki" | "tengu" | "undine" | "vanara" | "vesk" | "vishkanya" | "vlaka" | "wayang" | "yaksha" | "yaoguai" | "aeon" | "aberration" | "aesir" | "agathion" | "amphibious" | "angel" | "animal" | "anugobu" | "aquatic" | "archon" | "astral" | "asura" | "azata" | "blight" | "boggard" | "caligni" | "celestial" | "charau-ka" | "cosmic" | "couatl" | "daemon" | "darvakka" | "demon" | "dero" | "devil" | "dinosaur" | "dragon" | "drift" | "drow" | "duergar" | "elemental" | "ethereal" | "experiment" | "fiend" | "formian" | "genie" | "ghost" | "ghoul" | "ghul" | "giant" | "gigas" | "girtablilu" | "golem" | "graveknight" | "gremlin" | "grioth" | "hag" | "hantu" | "herald" | "hryngar" | "humanoid" | "inevitable" | "jinsul" | "kaiju" | "kami" | "kothama" | "kovintus" | "kucharn" | "lilu" | "locathah" | "maftet" | "mindless" | "minion" | "morlock" | "mortic" | "mummy" | "munavri" | "mutant" | "nindoru" | "nymph" | "oni" | "ooze" | "paaridar" | "palinthanos" | "persona-flirt" | "persona-guardian" | "persona-leader" | "persona-scholar" | "persona-scoundrel" | "persona-underdog" | "persona-warrior" | "persona-wildcard" | "petitioner" | "phantom" | "protean" | "psychopomp" | "qlippoth" | "rakshasa" | "robot" | "ryphorian" | "sahkil" | "sea-devil" | "sedacthy" | "serpentfolk" | "seugathi" | "shabti" | "shade" | "siktempora" | "skelm" | "skulk" | "soulbound" | "spectra" | "sporeborn" | "spriggan" | "stheno" | "swarm" | "tane" | "tanggal" | "titan" | "troll" | "troop" | "undead" | "urdefhan" | "vampire" | "velstrac" | "werecreature" | "wight" | "wild-hunt" | "wraith" | "wraithvine" | "wyrwood" | "xulgath" | "zombie", "time" | "div" | "monitor" | "light" | "force" | "android" | "construct" | "arcane" | "divine" | "occult" | "primal" | "alchemical" | "clockwork" | "illusion" | "mythic" | "plant" | "tech" | "mental" | "spirit" | "vitality" | "void" | "holy" | "unholy" | "acid" | "cold" | "electricity" | "fire" | "sonic" | "air" | "earth" | "metal" | "water" | "wood" | "fey" | "kobold" | "poison" | "beast" | "dream" | "eidolon" | "fungus" | "incorporeal" | "shadow" | "summoned" | "aiuvarin" | "anadi" | "aphorite" | "ardande" | "astrazoan" | "athamaru" | "automaton" | "awakened-animal" | "azarketi" | "barathu" | "beastkin" | "borai" | "bugbear" | "catfolk" | "centaur" | "changeling" | "conrasu" | "contemplative" | "corpsefolk" | "dhampir" | "dragonblood" | "dragonet" | "dragonkin" | "dromaar" | "duskwalker" | "dwarf" | "elebrian" | "elf" | "fetchling" | "fleshwarp" | "ganzi" | "geniekin" | "ghoran" | "gnoll" | "gnome" | "goblin" | "goloma" | "grippli" | "halfling" | "hobgoblin" | "human" | "hungerseed" | "ikeshti" | "jotunborn" | "kalo" | "kasatha" | "kashrishi" | "khizar" | "kitsune" | "lashunta" | "leshy" | "lizardfolk" | "merfolk" | "minotaur" | "naari" | "nagaji" | "nephilim" | "orc" | "oread" | "pahtra" | "poppet" | "prismeni" | "ratfolk" | "reflection" | "samsaran" | "sarangay" | "sarcesian" | "shirren" | "shisk" | "shobhad" | "shoony" | "skeleton" | "skittermander" | "sprite" | "strix" | "suli" | "surki" | "sylph" | "talos" | "tanuki" | "tengu" | "undine" | "vanara" | "vesk" | "vishkanya" | "vlaka" | "wayang" | "yaksha" | "yaoguai" | "aeon" | "aberration" | "aesir" | "agathion" | "amphibious" | "angel" | "animal" | "anugobu" | "aquatic" | "archon" | "astral" | "asura" | "azata" | "blight" | "boggard" | "caligni" | "celestial" | "charau-ka" | "cosmic" | "couatl" | "daemon" | "darvakka" | "demon" | "dero" | "devil" | "dinosaur" | "dragon" | "drift" | "drow" | "duergar" | "elemental" | "ethereal" | "experiment" | "fiend" | "formian" | "genie" | "ghost" | "ghoul" | "ghul" | "giant" | "gigas" | "girtablilu" | "golem" | "graveknight" | "gremlin" | "grioth" | "hag" | "hantu" | "herald" | "hryngar" | "humanoid" | "inevitable" | "jinsul" | "kaiju" | "kami" | "kothama" | "kovintus" | "kucharn" | "lilu" | "locathah" | "maftet" | "mindless" | "minion" | "morlock" | "mortic" | "mummy" | "munavri" | "mutant" | "nindoru" | "nymph" | "oni" | "ooze" | "paaridar" | "palinthanos" | "persona-flirt" | "persona-guardian" | "persona-leader" | "persona-scholar" | "persona-scoundrel" | "persona-underdog" | "persona-warrior" | "persona-wildcard" | "petitioner" | "phantom" | "protean" | "psychopomp" | "qlippoth" | "rakshasa" | "robot" | "ryphorian" | "sahkil" | "sea-devil" | "sedacthy" | "serpentfolk" | "seugathi" | "shabti" | "shade" | "siktempora" | "skelm" | "skulk" | "soulbound" | "spectra" | "sporeborn" | "spriggan" | "stheno" | "swarm" | "tane" | "tanggal" | "titan" | "troll" | "troop" | "undead" | "urdefhan" | "vampire" | "velstrac" | "werecreature" | "wight" | "wild-hunt" | "wraith" | "wraithvine" | "wyrwood" | "xulgath" | "zombie">;
5
+ export declare const zCreatureType: z.ZodCustom<"time" | "monitor" | "construct" | "plant" | "spirit" | "vitality" | "void" | "fey" | "beast" | "dream" | "fungus" | "shadow" | "aberration" | "animal" | "astral" | "celestial" | "dragon" | "elemental" | "ethereal" | "fiend" | "giant" | "humanoid" | "ooze" | "petitioner" | "undead", "time" | "monitor" | "construct" | "plant" | "spirit" | "vitality" | "void" | "fey" | "beast" | "dream" | "fungus" | "shadow" | "aberration" | "animal" | "astral" | "celestial" | "dragon" | "elemental" | "ethereal" | "fiend" | "giant" | "humanoid" | "ooze" | "petitioner" | "undead">;
6
+ export declare const zLanguage: z.ZodCustom<string, string>;
7
+ export declare const zAttitude: z.ZodCustom<"friendly" | "helpful" | "hostile" | "indifferent" | "unfriendly", "friendly" | "helpful" | "hostile" | "indifferent" | "unfriendly">;
8
+ export declare const zModeOfBeing: z.ZodLiteral<ModeOfBeing>;
9
+ export declare const zSenseAcuity: z.ZodLiteral<SenseAcuity>;
10
+ export declare const zSenseType: z.ZodCustom<"darkvision" | "tremorsense" | "bloodsense" | "echolocation" | "greater-darkvision" | "infrared-vision" | "lifesense" | "low-light-vision" | "magicsense" | "motion-sense" | "scent" | "see-invisibility" | "spiritsense" | "thoughtsense" | "truesight" | "wavesense", "darkvision" | "tremorsense" | "bloodsense" | "echolocation" | "greater-darkvision" | "infrared-vision" | "lifesense" | "low-light-vision" | "magicsense" | "motion-sense" | "scent" | "see-invisibility" | "spiritsense" | "thoughtsense" | "truesight" | "wavesense">;
11
+ export declare const zSpecialVisionType: z.ZodLiteral<SpecialVisionType>;
@@ -0,0 +1,11 @@
1
+ import * as R from "remeda";
2
+ import * as z from "zod";
3
+ export const zCreatureActorType = z.literal(["character", "npc", "familiar"]);
4
+ export const zCreatureTrait = z.custom((data) => R.isString(data) && Object.hasOwn(CONFIG.PF2E.creatureTraits, data));
5
+ export const zCreatureType = z.custom((data) => R.isString(data) && Object.hasOwn(CONFIG.PF2E.creatureTypes, data));
6
+ export const zLanguage = z.custom((data) => R.isString(data) && Object.hasOwn(CONFIG.PF2E.languages, data));
7
+ export const zAttitude = z.custom((data) => R.isString(data) && Object.hasOwn(CONFIG.PF2E.attitude, data));
8
+ export const zModeOfBeing = z.literal(["living", "undead", "construct", "object"]);
9
+ export const zSenseAcuity = z.literal(["precise", "imprecise", "vague"]);
10
+ export const zSenseType = z.custom((data) => R.isString(data) && Object.hasOwn(CONFIG.PF2E.senses, data));
11
+ export const zSpecialVisionType = z.literal(["low-light-vision", "darkvision", "greater-darkvision", "see-invisibility"]);
@@ -0,0 +1,4 @@
1
+ export * from "./actions.js";
2
+ export * from "./base.js";
3
+ export * from "./creature.js";
4
+ export * from "./modifiers.js";
@@ -0,0 +1,4 @@
1
+ export * from "./actions.js";
2
+ export * from "./base.js";
3
+ export * from "./creature.js";
4
+ export * from "./modifiers.js";
@@ -0,0 +1,3 @@
1
+ import { ModifierType } from "@7h3laughingman/pf2e-types/module/actor/modifiers.js";
2
+ import * as z from "zod";
3
+ export declare const zModifierType: z.ZodLiteral<ModifierType>;
@@ -0,0 +1,2 @@
1
+ import * as z from "zod";
2
+ export const zModifierType = z.literal(["ability", "circumstance", "item", "potency", "proficiency", "status", "untyped"]);
@@ -0,0 +1,60 @@
1
+ import * as z from "zod";
2
+ export declare const zActiveEffectChangeMode: z.ZodLiteral<0 | 2 | 1 | 3 | 4 | 5>;
3
+ export declare const zCanvasPerformanceMode: z.ZodLiteral<0 | 2 | 1 | 3>;
4
+ export declare const zChatMessageStyle: z.ZodLiteral<0 | 2 | 1 | 3>;
5
+ export declare const zCompatibilityMode: z.ZodLiteral<0 | 2 | 1 | 3>;
6
+ export declare const zLightingLevel: z.ZodLiteral<0 | 2 | 1 | 3 | -1 | -2>;
7
+ export declare const zPrimaryDocumentType: z.ZodLiteral<"Actor" | "Cards" | "ChatMessage" | "Combat" | "FogExploration" | "Folder" | "Item" | "JournalEntry" | "Macro" | "Playlist" | "RollTable" | "Scene" | "Setting" | "User" | "Adventure">;
8
+ export declare const zEmbeddedDocumentType: z.ZodLiteral<"Item" | "ActiveEffect" | "Token" | "ActorDelta" | "AmbientLight" | "AmbientSound" | "Card" | "Combatant" | "CombatantGroup" | "Drawing" | "JournalEntryCategory" | "JournalEntryPage" | "MeasuredTemplate" | "Note" | "PlaylistSound" | "Region" | "RegionBehavior" | "TableResult" | "Tile" | "Wall">;
9
+ export declare const zDocumentType: z.ZodLiteral<"Actor" | "Cards" | "ChatMessage" | "Combat" | "FogExploration" | "Folder" | "Item" | "JournalEntry" | "Macro" | "Playlist" | "RollTable" | "Scene" | "Setting" | "User" | "Adventure" | "ActiveEffect" | "Token" | "ActorDelta" | "AmbientLight" | "AmbientSound" | "Card" | "Combatant" | "CombatantGroup" | "Drawing" | "JournalEntryCategory" | "JournalEntryPage" | "MeasuredTemplate" | "Note" | "PlaylistSound" | "Region" | "RegionBehavior" | "TableResult" | "Tile" | "Wall">;
10
+ export declare const zWorldDocumentType: z.ZodLiteral<"Actor" | "Cards" | "ChatMessage" | "Combat" | "FogExploration" | "Folder" | "Item" | "JournalEntry" | "Macro" | "Playlist" | "RollTable" | "Scene" | "Setting" | "User">;
11
+ export declare const zCompendiumDocumentType: z.ZodLiteral<"Actor" | "Cards" | "Item" | "JournalEntry" | "Macro" | "Playlist" | "RollTable" | "Scene" | "Adventure">;
12
+ export declare const zDocumentOwnershipString: z.ZodLiteral<"INHERIT" | "NONE" | "LIMITED" | "OBSERVER" | "OWNER">;
13
+ export declare const zDocumentOwnershipLevel: z.ZodLiteral<0 | 2 | 1 | 3 | -1>;
14
+ export declare const zRollMode: z.ZodLiteral<"publicroll" | "gmroll" | "blindroll" | "selfroll">;
15
+ export declare const zDrawingFillType: z.ZodLiteral<0 | 2 | 1>;
16
+ export declare const zFolderDocumentType: z.ZodLiteral<"Actor" | "Cards" | "Item" | "JournalEntry" | "Macro" | "Playlist" | "RollTable" | "Scene" | "Adventure" | "Compendium">;
17
+ export declare const zMovementDirection: z.ZodLiteral<2 | 1 | 4 | 8 | 16 | 32 | 5 | 10 | 9>;
18
+ export declare const zGridType: z.ZodLiteral<0 | 2 | 1 | 3 | 4 | 5>;
19
+ export declare const zGridDiagonalRule: z.ZodLiteral<0 | 2 | 1 | 3 | 4 | 5 | 6>;
20
+ export declare const zGridSnappingMode: z.ZodLiteral<2 | 1 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 16384 | 240 | 3840 | 4096 | 8192 | 32768 | 61440>;
21
+ export declare const zMacroScope: z.ZodLiteral<"global" | "actors" | "actor">;
22
+ export declare const zMacroType: z.ZodLiteral<"script" | "chat">;
23
+ export declare const zPlaylistMode: z.ZodLiteral<0 | 2 | 1 | -1>;
24
+ export declare const zPlaylistSortMode: z.ZodLiteral<"a" | "m">;
25
+ export declare const zDirectorySearchMode: z.ZodLiteral<"name" | "full">;
26
+ export declare const zPackageType: z.ZodLiteral<"module" | "system" | "world">;
27
+ export declare const zPackageAvailabilityCode: z.ZodLiteral<0 | 2 | 1 | 3 | 4 | 8 | 5 | 6 | 10 | 7 | 9>;
28
+ export declare const zSoftwareUpdateChannel: z.ZodLiteral<"stable" | "prototype" | "testing" | "development">;
29
+ export declare const zTableResultType: z.ZodLiteral<"text" | "document">;
30
+ export declare const zJournalEntryPageFormat: z.ZodLiteral<2 | 1>;
31
+ export declare const zTextAnchorPoint: z.ZodLiteral<0 | 2 | 1 | 3 | 4>;
32
+ export declare const zTileOcclusionMode: z.ZodLiteral<0 | 1 | 3 | 4>;
33
+ export declare const zTokenDisplayMode: z.ZodLiteral<0 | 10 | 20 | 50 | 40 | 30>;
34
+ export declare const zTokenDisposition: z.ZodLiteral<0 | 1 | -1 | -2>;
35
+ export declare const zTokenShapeType: z.ZodLiteral<0 | 2 | 1 | 3 | 4 | 5>;
36
+ export declare const zUserRoleName: z.ZodLiteral<"NONE" | "PLAYER" | "TRUSTED" | "ASSISTANT" | "GAMEMASTER">;
37
+ export declare const zUserRole: z.ZodLiteral<"0" | "1" | "2" | "3" | "4">;
38
+ export declare const zMeasuredTemplateType: z.ZodLiteral<"circle" | "rect" | "cone" | "ray">;
39
+ export declare const zUserPermission: z.ZodLiteral<"ACTOR_CREATE" | "BROADCAST_AUDIO" | "BROADCAST_VIDEO" | "CARDS_CREATE" | "DRAWING_CREATE" | "ITEM_CREATE" | "FILES_BROWSE" | "FILES_UPLOAD" | "JOURNAL_CREATE" | "MACRO_SCRIPT" | "MANUAL_ROLLS" | "MESSAGE_WHISPER" | "NOTE_CREATE" | "PING_CANVAS" | "PLAYLIST_CREATE" | "SETTINGS_MODIFY" | "SHOW_CURSOR" | "SHOW_RULER" | "TEMPLATE_CREATE" | "TOKEN_CREATE" | "TOKEN_DELETE" | "TOKEN_CONFIGURE" | "WALL_DOORS" | "QUERY_USER">;
40
+ export declare const zWallDirection: z.ZodLiteral<0 | 2 | 1>;
41
+ export declare const zWallDoorType: z.ZodLiteral<0 | 2 | 1>;
42
+ export declare const zWallDoorState: z.ZodLiteral<0 | 2 | 1>;
43
+ export declare const zWallDoorInteraction: z.ZodLiteral<"open" | "close" | "test" | "lock" | "unlock">;
44
+ export declare const zWallRestrictionType: z.ZodLiteral<"move" | "light" | "sight" | "sound">;
45
+ export declare const zWallSenseType: z.ZodLiteral<0 | 10 | 20 | 40 | 30>;
46
+ export declare const zWallMovementType: z.ZodLiteral<0 | 20>;
47
+ export declare const zImageFileExtension: z.ZodLiteral<"svg" | "apng" | "avif" | "bmp" | "gif" | "jpeg" | "jpg" | "png" | "tiff" | "webp">;
48
+ export declare const zVideoFileExtension: z.ZodLiteral<"m4v" | "mp4" | "ogv" | "webm">;
49
+ export declare const zAudioFileExtension: z.ZodLiteral<"ogg" | "opus" | "webm" | "aac" | "flac" | "m4a" | "mid" | "mp3" | "wav">;
50
+ export declare const zFileExtension: z.ZodLiteral<"ogg" | "opus" | "svg" | "json" | "xml" | "apng" | "avif" | "bmp" | "gif" | "jpeg" | "jpg" | "png" | "tiff" | "webp" | "m4v" | "mp4" | "ogv" | "webm" | "aac" | "flac" | "m4a" | "mid" | "mp3" | "wav" | "pdf" | "fbx" | "glb" | "gltf" | "mtl" | "obj" | "stl" | "usdz" | "otf" | "ttf" | "woff" | "woff2" | "csv" | "md" | "tsv" | "txt" | "yml" | "yaml">;
51
+ export declare const zFileCategory: z.ZodLiteral<"HTML" | "IMAGE" | "VIDEO" | "AUDIO" | "TEXT" | "FONT" | "GRAPHICS">;
52
+ export declare const zRegionMovementSegmentType: z.ZodLiteral<0 | 1 | -1>;
53
+ export declare const zDrawingShapeType: z.ZodLiteral<"r" | "p" | "t" | "f" | "e">;
54
+ export declare const zShapeDataType: z.ZodLiteral<"circle" | "ellipse" | "polygon" | "rectangle">;
55
+ export declare const zUserAction: z.ZodLiteral<"update" | "delete" | "create">;
56
+ export declare const zHexColorstring: z.ZodTemplateLiteral<`#${string}`>;
57
+ export declare const zAudioFilePath: z.ZodTemplateLiteral<`${string}.webm` | `${string}.ogg` | `${string}.opus` | `${string}.aac` | `${string}.flac` | `${string}.m4a` | `${string}.mid` | `${string}.mp3` | `${string}.wav`>;
58
+ export declare const zImageFilePath: z.ZodTemplateLiteral<`${string}.svg` | `${string}.apng` | `${string}.avif` | `${string}.bmp` | `${string}.gif` | `${string}.jpeg` | `${string}.jpg` | `${string}.png` | `${string}.tiff` | `${string}.webp`>;
59
+ export declare const zVideoFilePath: z.ZodTemplateLiteral<`${string}.m4v` | `${string}.mp4` | `${string}.ogv` | `${string}.webm`>;
60
+ export declare const zFilePath: z.ZodUnion<readonly [z.ZodTemplateLiteral<`${string}.webm` | `${string}.ogg` | `${string}.opus` | `${string}.aac` | `${string}.flac` | `${string}.m4a` | `${string}.mid` | `${string}.mp3` | `${string}.wav`>, z.ZodTemplateLiteral<`${string}.svg` | `${string}.apng` | `${string}.avif` | `${string}.bmp` | `${string}.gif` | `${string}.jpeg` | `${string}.jpg` | `${string}.png` | `${string}.tiff` | `${string}.webp`>, z.ZodTemplateLiteral<`${string}.m4v` | `${string}.mp4` | `${string}.ogv` | `${string}.webm`>]>;
@@ -0,0 +1,61 @@
1
+ import * as R from "remeda";
2
+ import * as z from "zod";
3
+ export const zActiveEffectChangeMode = z.literal(R.values(CONST.ACTIVE_EFFECT_MODES));
4
+ export const zCanvasPerformanceMode = z.literal(R.values(CONST.CANVAS_PERFORMANCE_MODES));
5
+ export const zChatMessageStyle = z.literal(R.values(CONST.CHAT_MESSAGE_STYLES));
6
+ export const zCompatibilityMode = z.literal(R.values(CONST.COMPATIBILITY_MODES));
7
+ export const zLightingLevel = z.literal(R.values(CONST.LIGHTING_LEVELS));
8
+ export const zPrimaryDocumentType = z.literal(R.values(CONST.PRIMARY_DOCUMENT_TYPES));
9
+ export const zEmbeddedDocumentType = z.literal(R.values(CONST.EMBEDDED_DOCUMENT_TYPES));
10
+ export const zDocumentType = z.literal(R.values(CONST.ALL_DOCUMENT_TYPES));
11
+ export const zWorldDocumentType = z.literal(R.values(CONST.WORLD_DOCUMENT_TYPES));
12
+ export const zCompendiumDocumentType = z.literal(R.values(CONST.COMPENDIUM_DOCUMENT_TYPES));
13
+ export const zDocumentOwnershipString = z.literal(R.keys(CONST.DOCUMENT_OWNERSHIP_LEVELS));
14
+ export const zDocumentOwnershipLevel = z.literal(R.values(CONST.DOCUMENT_OWNERSHIP_LEVELS));
15
+ export const zRollMode = z.literal(R.values(CONST.DICE_ROLL_MODES));
16
+ export const zDrawingFillType = z.literal(R.values(CONST.DRAWING_FILL_TYPES));
17
+ export const zFolderDocumentType = z.literal(R.values(CONST.FOLDER_DOCUMENT_TYPES));
18
+ export const zMovementDirection = z.literal(R.values(CONST.MOVEMENT_DIRECTIONS));
19
+ export const zGridType = z.literal(R.values(CONST.GRID_TYPES));
20
+ export const zGridDiagonalRule = z.literal(R.values(CONST.GRID_DIAGONALS));
21
+ export const zGridSnappingMode = z.literal(R.values(CONST.GRID_SNAPPING_MODES));
22
+ export const zMacroScope = z.literal(R.values(CONST.MACRO_SCOPES));
23
+ export const zMacroType = z.literal(R.values(CONST.MACRO_TYPES));
24
+ export const zPlaylistMode = z.literal(R.values(CONST.PLAYLIST_MODES));
25
+ export const zPlaylistSortMode = z.literal(R.values(CONST.PLAYLIST_SORT_MODES));
26
+ export const zDirectorySearchMode = z.literal(R.values(CONST.DIRECTORY_SEARCH_MODES));
27
+ export const zPackageType = z.literal(R.values(CONST.PACKAGE_TYPES));
28
+ export const zPackageAvailabilityCode = z.literal(R.values(CONST.PACKAGE_AVAILABILITY_CODES));
29
+ export const zSoftwareUpdateChannel = z.literal(R.keys(CONST.SOFTWARE_UPDATE_CHANNELS));
30
+ export const zTableResultType = z.literal(R.values(CONST.TABLE_RESULT_TYPES));
31
+ export const zJournalEntryPageFormat = z.literal(R.values(CONST.JOURNAL_ENTRY_PAGE_FORMATS));
32
+ export const zTextAnchorPoint = z.literal(R.values(CONST.TEXT_ANCHOR_POINTS));
33
+ export const zTileOcclusionMode = z.literal(R.values(CONST.TILE_OCCLUSION_MODES));
34
+ export const zTokenDisplayMode = z.literal(R.values(CONST.TOKEN_DISPLAY_MODES));
35
+ export const zTokenDisposition = z.literal(R.values(CONST.TOKEN_DISPOSITIONS));
36
+ export const zTokenShapeType = z.literal(R.values(CONST.TOKEN_SHAPES));
37
+ export const zUserRoleName = z.literal(R.keys(CONST.USER_ROLES));
38
+ export const zUserRole = z.literal(R.keys(CONST.USER_ROLE_NAMES));
39
+ export const zMeasuredTemplateType = z.literal(R.values(CONST.MEASURED_TEMPLATE_TYPES));
40
+ export const zUserPermission = z.literal(R.keys(CONST.USER_PERMISSIONS));
41
+ export const zWallDirection = z.literal(R.values(CONST.WALL_DIRECTIONS));
42
+ export const zWallDoorType = z.literal(R.values(CONST.WALL_DOOR_TYPES));
43
+ export const zWallDoorState = z.literal(R.values(CONST.WALL_DOOR_STATES));
44
+ export const zWallDoorInteraction = z.literal(R.values(CONST.WALL_DOOR_INTERACTIONS));
45
+ export const zWallRestrictionType = z.literal(R.values(CONST.WALL_RESTRICTION_TYPES));
46
+ export const zWallSenseType = z.literal(R.values(CONST.WALL_SENSE_TYPES));
47
+ export const zWallMovementType = z.literal(R.values(CONST.WALL_MOVEMENT_TYPES));
48
+ export const zImageFileExtension = z.literal(R.keys(CONST.IMAGE_FILE_EXTENSIONS));
49
+ export const zVideoFileExtension = z.literal(R.keys(CONST.VIDEO_FILE_EXTENSIONS));
50
+ export const zAudioFileExtension = z.literal(R.keys(CONST.AUDIO_FILE_EXTENSIONS));
51
+ export const zFileExtension = z.literal(R.keys(CONST.UPLOADABLE_FILE_EXTENSIONS));
52
+ export const zFileCategory = z.literal(R.keys(CONST.FILE_CATEGORIES));
53
+ export const zRegionMovementSegmentType = z.literal(R.values(CONST.REGION_MOVEMENT_SEGMENTS));
54
+ export const zDrawingShapeType = z.literal(["r", "e", "t", "p", "f"]);
55
+ export const zShapeDataType = z.literal(["rectangle", "circle", "ellipse", "polygon"]);
56
+ export const zUserAction = z.literal(["create", "update", "delete"]);
57
+ export const zHexColorstring = z.templateLiteral(["#", z.string()]).refine((value) => /^#[0-9A-Fa-f]{6}$/.test(value));
58
+ export const zAudioFilePath = z.templateLiteral([z.string(), ".", zAudioFileExtension]);
59
+ export const zImageFilePath = z.templateLiteral([z.string(), ".", zImageFileExtension]);
60
+ export const zVideoFilePath = z.templateLiteral([z.string(), ".", zVideoFileExtension]);
61
+ export const zFilePath = z.union([zAudioFilePath, zImageFilePath, zVideoFilePath]);
@@ -0,0 +1,17 @@
1
+ import { OneToFive, OneToFour, OneToSix, OneToTen, OneToThree, Rarity, Size, TwoToThree, ZeroToEleven, ZeroToFive, ZeroToFour, ZeroToSix, ZeroToTen, ZeroToThree, ZeroToTwo } from "@7h3laughingman/pf2e-types/module/data.js";
2
+ import * as z from "zod";
3
+ export declare const zSize: z.ZodLazy<z.ZodLiteral<Size>>;
4
+ export declare const zRarity: z.ZodLazy<z.ZodLiteral<Rarity>>;
5
+ export declare const zZeroToTwo: z.ZodLiteral<ZeroToTwo>;
6
+ export declare const zZeroToThree: z.ZodLiteral<ZeroToThree>;
7
+ export declare const zOneToThree: z.ZodLiteral<OneToThree>;
8
+ export declare const zTwoToThree: z.ZodLiteral<TwoToThree>;
9
+ export declare const zZeroToFour: z.ZodLiteral<ZeroToFour>;
10
+ export declare const zOneToFour: z.ZodLiteral<OneToFour>;
11
+ export declare const zZeroToFive: z.ZodLiteral<ZeroToFive>;
12
+ export declare const zOneToFive: z.ZodLiteral<OneToFive>;
13
+ export declare const zZeroToSix: z.ZodLiteral<ZeroToSix>;
14
+ export declare const zOneToSix: z.ZodLiteral<OneToSix>;
15
+ export declare const zZeroToTen: z.ZodLiteral<ZeroToTen>;
16
+ export declare const zOneToTen: z.ZodLiteral<OneToTen>;
17
+ export declare const zZeroToEleven: z.ZodLiteral<ZeroToEleven>;
@@ -0,0 +1,17 @@
1
+ import * as R from "remeda";
2
+ import * as z from "zod";
3
+ export const zSize = z.lazy(() => z.literal(R.keys(CONFIG.PF2E.actorSizes)));
4
+ export const zRarity = z.lazy(() => z.literal(R.keys(CONFIG.PF2E.rarityTraits)));
5
+ export const zZeroToTwo = z.literal([0, 1, 2]);
6
+ export const zZeroToThree = z.literal([0, 1, 2, 3]);
7
+ export const zOneToThree = z.literal([1, 2, 3]);
8
+ export const zTwoToThree = z.literal([2, 3]);
9
+ export const zZeroToFour = z.literal([0, 1, 2, 3, 4]);
10
+ export const zOneToFour = z.literal([1, 2, 3, 4]);
11
+ export const zZeroToFive = z.literal([0, 1, 2, 3, 4, 5]);
12
+ export const zOneToFive = z.literal([1, 2, 3, 4, 5]);
13
+ export const zZeroToSix = z.literal([0, 1, 2, 3, 4, 5, 6]);
14
+ export const zOneToSix = z.literal([1, 2, 3, 4, 5, 6]);
15
+ export const zZeroToTen = z.literal([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
16
+ export const zOneToTen = z.literal([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
17
+ export const zZeroToEleven = z.literal([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]);
@@ -0,0 +1,4 @@
1
+ import * as z from "zod";
2
+ export declare function zDocument<T extends foundry.documents.abstract.ClientDocument>(type: CONST.DocumentType): z.ZodCustom<T, T>;
3
+ export declare function zDocumentUUID<T extends foundry.utils.DocumentUUID>(type: CONST.DocumentType, embedded?: boolean): z.ZodCustom<T, T>;
4
+ export declare function zDocumentCodec<I extends foundry.utils.DocumentUUID, O extends foundry.documents.abstract.ClientDocument>(type: CONST.DocumentType): z.ZodCodec<z.ZodCustom<I, I>, z.ZodCustom<O, O>>;
@@ -0,0 +1,31 @@
1
+ import * as R from "remeda";
2
+ import * as z from "zod";
3
+ export function zDocument(type) {
4
+ return z.custom((value) => R.isIncludedIn(type, CONST.ALL_DOCUMENT_TYPES) && R.isNonNullish(value) && value instanceof getDocumentClass(type));
5
+ }
6
+ export function zDocumentUUID(type, embedded) {
7
+ return z.custom((value) => {
8
+ const resolvedUUID = R.isString(value) ? foundry.utils.parseUuid(value) : null;
9
+ if (!resolvedUUID)
10
+ return false;
11
+ if (type && resolvedUUID.type !== type)
12
+ return false;
13
+ if (resolvedUUID.type && !R.isIncludedIn(resolvedUUID.type, CONST.ALL_DOCUMENT_TYPES))
14
+ return false;
15
+ if (embedded === true && !resolvedUUID.embedded.length)
16
+ return false;
17
+ if (embedded === false && resolvedUUID.embedded.length)
18
+ return false;
19
+ if (!resolvedUUID.documentId || !foundry.data.validators.isValidId(resolvedUUID.documentId))
20
+ return false;
21
+ return true;
22
+ });
23
+ }
24
+ export function zDocumentCodec(type) {
25
+ const document = zDocument(type);
26
+ const documentUUID = zDocumentUUID(type);
27
+ return z.codec(documentUUID, document, {
28
+ decode: (value) => foundry.utils.fromUuid(value),
29
+ encode: (value) => value.uuid
30
+ });
31
+ }
@@ -0,0 +1,8 @@
1
+ export * from "./actor/index.js";
2
+ export * from "./constants.js";
3
+ export * from "./data.js";
4
+ export * from "./document.js";
5
+ export * from "./item/index.js";
6
+ export * from "./rules/index.js";
7
+ export * from "./type-guards.js";
8
+ export * from "./types.js";
@@ -0,0 +1,8 @@
1
+ export * from "./actor/index.js";
2
+ export * from "./constants.js";
3
+ export * from "./data.js";
4
+ export * from "./document.js";
5
+ export * from "./item/index.js";
6
+ export * from "./rules/index.js";
7
+ export * from "./type-guards.js";
8
+ export * from "./types.js";
@@ -0,0 +1,9 @@
1
+ import { ArmorCategory, ArmorGroup, ArmorPropertyRuneType, ArmorTrait, BaseArmorType, OtherArmorTag, ResilientRuneType } from "@7h3laughingman/pf2e-types/module/item/armor/types.js";
2
+ import * as z from "zod";
3
+ export declare const zArmorCategory: z.ZodLazy<z.ZodLiteral<ArmorCategory>>;
4
+ export declare const zArmorGroup: z.ZodLazy<z.ZodLiteral<ArmorGroup>>;
5
+ export declare const zArmorPropertyRuneType: z.ZodLiteral<ArmorPropertyRuneType>;
6
+ export declare const zArmorTrait: z.ZodLazy<z.ZodLiteral<ArmorTrait>>;
7
+ export declare const zBaseArmorType: z.ZodLazy<z.ZodLiteral<BaseArmorType>>;
8
+ export declare const zOtherArmorTag: z.ZodLazy<z.ZodLiteral<OtherArmorTag>>;
9
+ export declare const zResilientRuneType: z.ZodLiteral<ResilientRuneType>;
@@ -0,0 +1,69 @@
1
+ import * as R from "remeda";
2
+ import * as z from "zod";
3
+ export const zArmorCategory = z.lazy(() => z.literal(R.keys(CONFIG.PF2E.armorCategories)));
4
+ export const zArmorGroup = z.lazy(() => z.literal(R.keys(CONFIG.PF2E.armorGroups)));
5
+ export const zArmorPropertyRuneType = z.literal([
6
+ "acidResistant",
7
+ "advancing",
8
+ "aimAiding",
9
+ "antimagic",
10
+ "assisting",
11
+ "bitter",
12
+ "coldResistant",
13
+ "deathless",
14
+ "electricityResistant",
15
+ "energyAdaptive",
16
+ "ethereal",
17
+ "fireResistant",
18
+ "fortification",
19
+ "glamered",
20
+ "gliding",
21
+ "greaterAcidResistant",
22
+ "greaterAdvancing",
23
+ "greaterColdResistant",
24
+ "greaterDread",
25
+ "greaterElectricityResistant",
26
+ "greaterFireResistant",
27
+ "greaterFortification",
28
+ "greaterInvisibility",
29
+ "greaterQuenching",
30
+ "greaterReady",
31
+ "greaterShadow",
32
+ "greaterSlick",
33
+ "greaterStanching",
34
+ "greaterSwallowSpike",
35
+ "greaterWinged",
36
+ "immovable",
37
+ "implacable",
38
+ "invisibility",
39
+ "lesserDread",
40
+ "magnetizing",
41
+ "majorQuenching",
42
+ "majorShadow",
43
+ "majorSlick",
44
+ "majorStanching",
45
+ "majorSwallowSpike",
46
+ "malleable",
47
+ "misleading",
48
+ "moderateDread",
49
+ "portable",
50
+ "quenching",
51
+ "raiment",
52
+ "ready",
53
+ "rockBraced",
54
+ "shadow",
55
+ "sinisterKnight",
56
+ "sizeChanging",
57
+ "slick",
58
+ "spellwatch",
59
+ "soaring",
60
+ "stanching",
61
+ "swallowSpike",
62
+ "trueQuenching",
63
+ "trueStanching",
64
+ "winged"
65
+ ]);
66
+ export const zArmorTrait = z.lazy(() => z.literal(R.keys(CONFIG.PF2E.armorTraits)));
67
+ export const zBaseArmorType = z.lazy(() => z.literal(R.keys(CONFIG.PF2E.baseArmorTypes)));
68
+ export const zOtherArmorTag = z.lazy(() => z.literal(R.keys(CONFIG.PF2E.otherArmorTags)));
69
+ export const zResilientRuneType = z.literal(["", "resilient", "greaterResilient", "majorResilient", "mythicResilient"]);
@@ -0,0 +1,5 @@
1
+ import { ActionType, NonPhysicalItemType, ProficiencyRank } from "@7h3laughingman/pf2e-types/module/item/base/data/index.js";
2
+ import * as z from "zod";
3
+ export declare const zActionType: z.ZodLazy<z.ZodLiteral<ActionType>>;
4
+ export declare const zNonPhysicalItemType: z.ZodLiteral<NonPhysicalItemType>;
5
+ export declare const zProficiencyRank: z.ZodLazy<z.ZodLiteral<ProficiencyRank>>;
@@ -0,0 +1,22 @@
1
+ import * as R from "remeda";
2
+ import * as z from "zod";
3
+ export const zActionType = z.lazy(() => z.literal(R.keys(CONFIG.PF2E.actionTypes)));
4
+ export const zNonPhysicalItemType = z.literal([
5
+ "action",
6
+ "affliction",
7
+ "ancestry",
8
+ "background",
9
+ "campaignFeature",
10
+ "class",
11
+ "condition",
12
+ "deity",
13
+ "effect",
14
+ "feat",
15
+ "heritage",
16
+ "kit",
17
+ "lore",
18
+ "melee",
19
+ "spell",
20
+ "spellcastingEntry"
21
+ ]);
22
+ export const zProficiencyRank = z.lazy(() => z.literal(R.keys(CONFIG.PF2E.proficiencyRanks)));
@@ -0,0 +1,5 @@
1
+ import { ConsumableCategory, ConsumableTrait, OtherConsumableTag } from "@7h3laughingman/pf2e-types/module/item/consumable/types.js";
2
+ import * as z from "zod";
3
+ export declare const zConsumableCategory: z.ZodLazy<z.ZodLiteral<ConsumableCategory>>;
4
+ export declare const zConsumableTrait: z.ZodLazy<z.ZodLiteral<ConsumableTrait>>;
5
+ export declare const zOtherConsumableTag: z.ZodLazy<z.ZodLiteral<OtherConsumableTag>>;
@@ -0,0 +1,5 @@
1
+ import * as R from "remeda";
2
+ import * as z from "zod";
3
+ export const zConsumableCategory = z.lazy(() => z.literal(R.keys(CONFIG.PF2E.consumableCategories)));
4
+ export const zConsumableTrait = z.lazy(() => z.literal(R.keys(CONFIG.PF2E.consumableTraits)));
5
+ export const zOtherConsumableTag = z.lazy(() => z.literal(R.keys(CONFIG.PF2E.otherConsumableTags)));
@@ -0,0 +1,3 @@
1
+ import { EquipmentTrait } from "@7h3laughingman/pf2e-types/module/item/equipment/types.js";
2
+ import * as z from "zod";
3
+ export declare const zEquipmentTrait: z.ZodLazy<z.ZodLiteral<EquipmentTrait>>;
@@ -0,0 +1,3 @@
1
+ import * as R from "remeda";
2
+ import * as z from "zod";
3
+ export const zEquipmentTrait = z.lazy(() => z.literal(R.keys(CONFIG.PF2E.equipmentTraits)));
@@ -0,0 +1,9 @@
1
+ export * from "./armor.js";
2
+ export * from "./base.js";
3
+ export * from "./consumable.js";
4
+ export * from "./equipment.js";
5
+ export * from "./melee.js";
6
+ export * from "./physical.js";
7
+ export * from "./shield.js";
8
+ export * from "./types.js";
9
+ export * from "./weapon.js";