@archivist-gg/dnd5e 0.3.8 → 0.3.10

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 (65) hide show
  1. package/dist/background/background.codec.js +5 -5
  2. package/dist/background/background.parser.js +4 -4
  3. package/dist/background/background.schema.js +3 -3
  4. package/dist/{chunk-UYBCC473.js → chunk-22MOUU2G.js} +1 -1
  5. package/dist/{chunk-LEHDXPY6.js → chunk-2M34FLAY.js} +1 -1
  6. package/dist/{chunk-YRTI2FLD.js → chunk-3UNP3G4D.js} +1 -1
  7. package/dist/{chunk-2Q374PZ3.js → chunk-4DOMDEBZ.js} +1 -1
  8. package/dist/{chunk-HRG4URUK.js → chunk-7YU4NPKR.js} +1 -1
  9. package/dist/{chunk-DIAYWWHG.js → chunk-BIA32MQ5.js} +1 -1
  10. package/dist/{chunk-5VTDYZIW.js → chunk-BL3VELKP.js} +1 -1
  11. package/dist/{chunk-GD2CFJ3T.js → chunk-BLRW2UU6.js} +1 -1
  12. package/dist/{chunk-IXMS2HHP.js → chunk-CBEKVAX4.js} +14 -6
  13. package/dist/{chunk-IVLA24R3.js → chunk-G247QXWW.js} +1 -1
  14. package/dist/{chunk-TEKRIRNZ.js → chunk-HLQAFZKQ.js} +1 -1
  15. package/dist/{chunk-5SMMRAO2.js → chunk-J77CKYV3.js} +1 -1
  16. package/dist/{chunk-5QM7YNGV.js → chunk-JANNRGJC.js} +1 -1
  17. package/dist/{chunk-O5WXS3G5.js → chunk-JCEV7KYN.js} +1 -1
  18. package/dist/{chunk-VMIFD2RB.js → chunk-MAH6DCRI.js} +1 -1
  19. package/dist/{chunk-FYM3ROGA.js → chunk-MQ747UCR.js} +1 -1
  20. package/dist/{chunk-EISRDJUV.js → chunk-NWDF5HG3.js} +1 -1
  21. package/dist/{chunk-47SCRXGM.js → chunk-OYUEUKKF.js} +2 -2
  22. package/dist/{chunk-N4JJNGLZ.js → chunk-PI4LLJG4.js} +2 -2
  23. package/dist/{chunk-RW42SHFM.js → chunk-PJMG5XV3.js} +1 -1
  24. package/dist/{chunk-WNQ2O2IS.js → chunk-QHMWA3SZ.js} +1 -1
  25. package/dist/{chunk-U3DNWCEI.js → chunk-R747YKS7.js} +1 -1
  26. package/dist/{chunk-Q6L2RASW.js → chunk-S56D6B6C.js} +2 -2
  27. package/dist/{chunk-QCKOVD3K.js → chunk-V6LJFP4R.js} +2 -2
  28. package/dist/chunk-W6GC6OKK.js +16 -0
  29. package/dist/{chunk-VTKJOAJD.js → chunk-XTRDCSJB.js} +6 -0
  30. package/dist/class/class.codec.js +6 -6
  31. package/dist/class/class.parser.js +5 -5
  32. package/dist/class/class.schema.js +4 -4
  33. package/dist/feat/feat.codec.js +5 -5
  34. package/dist/feat/feat.parser.js +4 -4
  35. package/dist/feat/feat.schema.d.ts +9 -0
  36. package/dist/feat/feat.schema.js +3 -3
  37. package/dist/index.js +23 -23
  38. package/dist/monster/monster.parser.js +5 -5
  39. package/dist/monster/monster.schema.js +4 -4
  40. package/dist/optional-feature/optional-feature.codec.js +4 -4
  41. package/dist/optional-feature/optional-feature.parser.js +3 -3
  42. package/dist/optional-feature/optional-feature.schema.d.ts +9 -0
  43. package/dist/optional-feature/optional-feature.schema.js +2 -2
  44. package/dist/pc/pc.decision-engine.js +2 -2
  45. package/dist/pc/pc.feature-effects.d.ts +12 -0
  46. package/dist/pc/pc.feature-effects.js +1 -1
  47. package/dist/pc/pc.proficiencies.js +2 -2
  48. package/dist/pc/pc.recalc.js +29 -31
  49. package/dist/pc/pc.resolver.js +2 -2
  50. package/dist/race/race.codec.js +6 -6
  51. package/dist/race/race.parser.js +5 -5
  52. package/dist/race/race.schema.js +4 -4
  53. package/dist/schemas/choice-schema.js +2 -2
  54. package/dist/schemas/feature-effect-schema.d.ts +9 -0
  55. package/dist/schemas/feature-effect-schema.js +1 -1
  56. package/dist/schemas/feature-schema.js +3 -3
  57. package/dist/spell/casting-time.d.ts +22 -0
  58. package/dist/spell/casting-time.js +6 -0
  59. package/dist/spell/spell.filter.d.ts +2 -2
  60. package/dist/spell/spell.filter.js +7 -19
  61. package/dist/subclass/subclass.codec.js +6 -6
  62. package/dist/subclass/subclass.parser.js +5 -5
  63. package/dist/subclass/subclass.schema.js +4 -4
  64. package/dist/types/feature-effect.d.ts +4 -0
  65. package/package.json +1 -1
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  backgroundCodec
3
- } from "../chunk-VMIFD2RB.js";
4
- import "../chunk-2Q374PZ3.js";
5
- import "../chunk-O5WXS3G5.js";
3
+ } from "../chunk-MAH6DCRI.js";
4
+ import "../chunk-4DOMDEBZ.js";
5
+ import "../chunk-JCEV7KYN.js";
6
6
  import "../chunk-IN4M4X7P.js";
7
- import "../chunk-LEHDXPY6.js";
8
- import "../chunk-VTKJOAJD.js";
7
+ import "../chunk-2M34FLAY.js";
8
+ import "../chunk-XTRDCSJB.js";
9
9
  import "../chunk-UA5KS2PL.js";
10
10
  export {
11
11
  backgroundCodec
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  parseBackground
3
- } from "../chunk-2Q374PZ3.js";
4
- import "../chunk-O5WXS3G5.js";
3
+ } from "../chunk-4DOMDEBZ.js";
4
+ import "../chunk-JCEV7KYN.js";
5
5
  import "../chunk-IN4M4X7P.js";
6
- import "../chunk-LEHDXPY6.js";
7
- import "../chunk-VTKJOAJD.js";
6
+ import "../chunk-2M34FLAY.js";
7
+ import "../chunk-XTRDCSJB.js";
8
8
  import "../chunk-UA5KS2PL.js";
9
9
  export {
10
10
  parseBackground
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  backgroundEntitySchema,
3
3
  langProfSchema
4
- } from "../chunk-O5WXS3G5.js";
4
+ } from "../chunk-JCEV7KYN.js";
5
5
  import "../chunk-IN4M4X7P.js";
6
- import "../chunk-LEHDXPY6.js";
7
- import "../chunk-VTKJOAJD.js";
6
+ import "../chunk-2M34FLAY.js";
7
+ import "../chunk-XTRDCSJB.js";
8
8
  import "../chunk-UA5KS2PL.js";
9
9
  export {
10
10
  backgroundEntitySchema,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  featEntitySchema
3
- } from "./chunk-47SCRXGM.js";
3
+ } from "./chunk-OYUEUKKF.js";
4
4
 
5
5
  // src/feat/feat.parser.ts
6
6
  import { parseYaml } from "@archivist-gg/core";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  featureEffectSchema
3
- } from "./chunk-VTKJOAJD.js";
3
+ } from "./chunk-XTRDCSJB.js";
4
4
 
5
5
  // src/schemas/choice-schema.ts
6
6
  import { z } from "zod";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseFeat
3
- } from "./chunk-UYBCC473.js";
3
+ } from "./chunk-22MOUU2G.js";
4
4
 
5
5
  // src/feat/feat.codec.ts
6
6
  import yaml from "js-yaml";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  backgroundEntitySchema
3
- } from "./chunk-O5WXS3G5.js";
3
+ } from "./chunk-JCEV7KYN.js";
4
4
 
5
5
  // src/background/background.parser.ts
6
6
  import { parseYaml } from "@archivist-gg/core";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseRace
3
- } from "./chunk-5VTDYZIW.js";
3
+ } from "./chunk-BL3VELKP.js";
4
4
 
5
5
  // src/race/race.codec.ts
6
6
  import yaml from "js-yaml";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseClass
3
- } from "./chunk-EISRDJUV.js";
3
+ } from "./chunk-NWDF5HG3.js";
4
4
 
5
5
  // src/class/class.codec.ts
6
6
  import yaml from "js-yaml";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  raceEntitySchema
3
- } from "./chunk-QCKOVD3K.js";
3
+ } from "./chunk-V6LJFP4R.js";
4
4
  import {
5
5
  aliasFeatureListActionCost
6
6
  } from "./chunk-4U55VNC7.js";
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-CJYCVNW2.js";
9
9
  import {
10
10
  featureSchema
11
- } from "./chunk-N4JJNGLZ.js";
11
+ } from "./chunk-PI4LLJG4.js";
12
12
  import {
13
13
  resourceSchema
14
14
  } from "./chunk-ZJXSXVFP.js";
@@ -20,6 +20,7 @@ function emptyFeatureEffectTotals() {
20
20
  initiative_bonus: 0,
21
21
  initiative_terms: [],
22
22
  skill_bonus_terms: [],
23
+ half_proficiency_terms: [],
23
24
  hp_per_level_bonus: 0,
24
25
  hp_per_level_terms: [],
25
26
  speed_walk_bonus: 0,
@@ -182,7 +183,7 @@ function scaled(base, key, scalesAt, level) {
182
183
  return best;
183
184
  }
184
185
  function applyEffect(out, eff, label, level) {
185
- var _a, _b, _c, _d, _e, _f;
186
+ var _a, _b, _c, _d, _e, _f, _g, _h;
186
187
  switch (eff.kind) {
187
188
  case "initiative-bonus":
188
189
  out.initiative_bonus += eff.value;
@@ -196,6 +197,13 @@ function applyEffect(out, eff, label, level) {
196
197
  label
197
198
  });
198
199
  break;
200
+ case "half-proficiency":
201
+ out.half_proficiency_terms.push({
202
+ skills: ((_b = eff.skills) != null ? _b : []).map(toProfSlug),
203
+ round: (_c = eff.round) != null ? _c : "down",
204
+ label
205
+ });
206
+ break;
199
207
  case "hp-per-level-bonus":
200
208
  out.hp_per_level_bonus += eff.value;
201
209
  out.hp_per_level_terms.push({ label, value: eff.value });
@@ -259,7 +267,7 @@ function applyEffect(out, eff, label, level) {
259
267
  }
260
268
  case "roll-modifier": {
261
269
  const rolls = eff.roll === "any" ? ["ability-check", "saving-throw", "attack"] : [eff.roll];
262
- const scopes = (_b = normalizeRollScope(eff.scope, rolls[0])) != null ? _b : [eff.scope];
270
+ const scopes = (_d = normalizeRollScope(eff.scope, rolls[0])) != null ? _d : [eff.scope];
263
271
  for (const roll of rolls) for (const scope of scopes)
264
272
  out.rollModifiers.push({ mode: eff.mode, roll, scope, condition: eff.condition, label });
265
273
  break;
@@ -269,13 +277,13 @@ function applyEffect(out, eff, label, level) {
269
277
  ability: eff.ability === "any" ? void 0 : eff.ability,
270
278
  on_success: eff.on_success,
271
279
  on_failure: eff.on_failure,
272
- appliesTo: (_c = eff.applies_to) != null ? _c : void 0,
280
+ appliesTo: (_e = eff.applies_to) != null ? _e : void 0,
273
281
  condition: eff.condition,
274
282
  label
275
283
  });
276
284
  break;
277
285
  case "crit-range":
278
- if (((_d = eff.applies_to) != null ? _d : "weapon") !== "spell") out.critRange = Math.min(out.critRange, eff.min_roll);
286
+ if (((_f = eff.applies_to) != null ? _f : "weapon") !== "spell") out.critRange = Math.min(out.critRange, eff.min_roll);
279
287
  break;
280
288
  case "extra-attack":
281
289
  out.extraAttack = Math.max(out.extraAttack, scaled(eff.count, "count", eff.scales_at, level));
@@ -287,7 +295,7 @@ function applyEffect(out, eff, label, level) {
287
295
  if (eff.flag === "no-ranged-in-melee-disadvantage") out.attackNotes.push("No disadvantage firing in melee");
288
296
  break;
289
297
  case "damage-bonus":
290
- if (((_e = eff.applies_to) != null ? _e : "weapon") !== "spell") {
298
+ if (((_g = eff.applies_to) != null ? _g : "weapon") !== "spell") {
291
299
  out.damageBonuses.push({
292
300
  amount: eff.amount,
293
301
  damage_type: eff.damage_type,
@@ -298,7 +306,7 @@ function applyEffect(out, eff, label, level) {
298
306
  break;
299
307
  case "ability-score-increase":
300
308
  if (eff.abilities === "chosen") break;
301
- for (const ab of eff.abilities) out.ability_bonus[ab] = ((_f = out.ability_bonus[ab]) != null ? _f : 0) + eff.amount;
309
+ for (const ab of eff.abilities) out.ability_bonus[ab] = ((_h = out.ability_bonus[ab]) != null ? _h : 0) + eff.amount;
302
310
  break;
303
311
  default:
304
312
  break;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  featureObjectSchema
3
- } from "./chunk-N4JJNGLZ.js";
3
+ } from "./chunk-PI4LLJG4.js";
4
4
  import {
5
5
  imageField
6
6
  } from "./chunk-UA5KS2PL.js";
@@ -29,7 +29,7 @@ import {
29
29
  import {
30
30
  assembleEffectFeatures,
31
31
  collectProficiencyEffectGrants
32
- } from "./chunk-IXMS2HHP.js";
32
+ } from "./chunk-CBEKVAX4.js";
33
33
  import {
34
34
  ALL_LANGUAGES,
35
35
  ALL_SKILL_SLUGS,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  subclassEntitySchema
3
- } from "./chunk-GD2CFJ3T.js";
3
+ } from "./chunk-BLRW2UU6.js";
4
4
  import {
5
5
  aliasFeaturesByLevelActionCost
6
6
  } from "./chunk-4U55VNC7.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseOptionalFeature
3
- } from "./chunk-RW42SHFM.js";
3
+ } from "./chunk-PJMG5XV3.js";
4
4
 
5
5
  // src/optional-feature/optional-feature.codec.ts
6
6
  import yaml from "js-yaml";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-IN4M4X7P.js";
4
4
  import {
5
5
  choiceSchema
6
- } from "./chunk-LEHDXPY6.js";
6
+ } from "./chunk-2M34FLAY.js";
7
7
  import {
8
8
  additionalSpellsEntrySchema,
9
9
  imageField
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseBackground
3
- } from "./chunk-2Q374PZ3.js";
3
+ } from "./chunk-4DOMDEBZ.js";
4
4
 
5
5
  // src/background/background.codec.ts
6
6
  import yaml from "js-yaml";
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-ZJXSXVFP.js";
9
9
  import {
10
10
  featureEffectSchema
11
- } from "./chunk-VTKJOAJD.js";
11
+ } from "./chunk-XTRDCSJB.js";
12
12
  import {
13
13
  additionalSpellsEntrySchema,
14
14
  imageField,
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-4U55VNC7.js";
4
4
  import {
5
5
  classEntitySchema
6
- } from "./chunk-Q6L2RASW.js";
6
+ } from "./chunk-S56D6B6C.js";
7
7
 
8
8
  // src/class/class.parser.ts
9
9
  import { parseYaml } from "@archivist-gg/core";
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-ZJXSXVFP.js";
5
5
  import {
6
6
  choiceSchema
7
- } from "./chunk-LEHDXPY6.js";
7
+ } from "./chunk-2M34FLAY.js";
8
8
  import {
9
9
  featureEffectSchema
10
- } from "./chunk-VTKJOAJD.js";
10
+ } from "./chunk-XTRDCSJB.js";
11
11
  import {
12
12
  additionalSpellsEntrySchema,
13
13
  imageField,
@@ -8,10 +8,10 @@ import {
8
8
  } from "./chunk-ZJXSXVFP.js";
9
9
  import {
10
10
  choiceSchema
11
- } from "./chunk-LEHDXPY6.js";
11
+ } from "./chunk-2M34FLAY.js";
12
12
  import {
13
13
  featureEffectSchema
14
- } from "./chunk-VTKJOAJD.js";
14
+ } from "./chunk-XTRDCSJB.js";
15
15
 
16
16
  // src/schemas/feature-schema.ts
17
17
  import { z as z2 } from "zod";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  optionalFeatureEntitySchema
3
- } from "./chunk-FYM3ROGA.js";
3
+ } from "./chunk-MQ747UCR.js";
4
4
 
5
5
  // src/optional-feature/optional-feature.parser.ts
6
6
  import { parseYaml } from "@archivist-gg/core";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  MONSTER_KNOWN_KEYS,
3
3
  monsterSchema
4
- } from "./chunk-IVLA24R3.js";
4
+ } from "./chunk-G247QXWW.js";
5
5
 
6
6
  // src/monster/monster.parser.ts
7
7
  import { parseYaml } from "@archivist-gg/core";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseSubclass
3
- } from "./chunk-5SMMRAO2.js";
3
+ } from "./chunk-J77CKYV3.js";
4
4
 
5
5
  // src/subclass/subclass.codec.ts
6
6
  import yaml from "js-yaml";
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-CJYCVNW2.js";
9
9
  import {
10
10
  featureSchema
11
- } from "./chunk-N4JJNGLZ.js";
11
+ } from "./chunk-PI4LLJG4.js";
12
12
  import {
13
13
  resourceSchema
14
14
  } from "./chunk-ZJXSXVFP.js";
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-IN4M4X7P.js";
19
19
  import {
20
20
  choiceSchema
21
- } from "./chunk-LEHDXPY6.js";
21
+ } from "./chunk-2M34FLAY.js";
22
22
  import {
23
23
  additionalSpellsEntrySchema,
24
24
  imageField,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  featureSchema
3
- } from "./chunk-N4JJNGLZ.js";
3
+ } from "./chunk-PI4LLJG4.js";
4
4
  import {
5
5
  choiceSchema
6
- } from "./chunk-LEHDXPY6.js";
6
+ } from "./chunk-2M34FLAY.js";
7
7
  import {
8
8
  additionalSpellsEntrySchema,
9
9
  imageField
@@ -0,0 +1,16 @@
1
+ // src/spell/casting-time.ts
2
+ function parseCastingTime(token) {
3
+ var _a;
4
+ const t = (_a = token == null ? void 0 : token.trim()) != null ? _a : "";
5
+ if (!t) return null;
6
+ if (/^(?:1\s*)?reaction\b/i.test(t)) return { kind: "reaction", count: 1 };
7
+ if (/^(?:1\s*)?bonus(?:[\s-]*action)?\b/i.test(t)) return { kind: "bonus", count: 1 };
8
+ if (/^(?:1\s*)?action\b/i.test(t)) return { kind: "action", count: 1 };
9
+ const m = /^(\d+)?[\s-]*(minute|min|hour|hr)s?\b/i.exec(t);
10
+ if (m) return { kind: "time", count: m[1] ? Number(m[1]) : 1, unit: /^h/i.test(m[2]) ? "hour" : "minute" };
11
+ return null;
12
+ }
13
+
14
+ export {
15
+ parseCastingTime
16
+ };
@@ -6,6 +6,12 @@ var conditionField = z.string().optional();
6
6
  var featureEffectSchema = z.discriminatedUnion("kind", [
7
7
  z.object({ kind: z.literal("initiative-bonus"), value: z.number().int(), condition: conditionField, subject: subjectField }),
8
8
  z.object({ kind: z.literal("skill-bonus"), skills: z.array(z.string().min(1)).nonempty(), ability: abilityEnum, minimum: z.number().int().optional(), condition: conditionField, subject: subjectField }),
9
+ // Jack of All Trades / Remarkable Athlete: half the proficiency bonus, and ONLY on a skill the character is
10
+ // not already proficient in — the "doesn't otherwise use your Proficiency Bonus" clause is the whole mechanic,
11
+ // so it is the kind's semantics, not a field. `skills` omitted = every skill (Jack of All Trades); a list
12
+ // narrows it (Remarkable Athlete). `round` is authored because the two printed features disagree: Jack of All
13
+ // Trades rounds down, Remarkable Athlete rounds up.
14
+ z.object({ kind: z.literal("half-proficiency"), skills: z.array(z.string().min(1)).nonempty().optional(), round: z.enum(["down", "up"]).optional(), condition: conditionField, subject: subjectField }),
9
15
  // `condition` here is the condition NAME (frightened, poisoned); the qualifier is `while`.
10
16
  z.object({ kind: z.literal("immune-condition"), condition: z.string().min(1), while: z.string().optional(), subject: subjectField }),
11
17
  z.object({ kind: z.literal("resistance"), damage_type: z.string().min(1), condition: conditionField, subject: subjectField }),
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  classCodec
3
- } from "../chunk-DIAYWWHG.js";
4
- import "../chunk-EISRDJUV.js";
3
+ } from "../chunk-BIA32MQ5.js";
4
+ import "../chunk-NWDF5HG3.js";
5
5
  import "../chunk-4U55VNC7.js";
6
- import "../chunk-Q6L2RASW.js";
6
+ import "../chunk-S56D6B6C.js";
7
7
  import "../chunk-23LZLBJK.js";
8
8
  import "../chunk-CJYCVNW2.js";
9
- import "../chunk-N4JJNGLZ.js";
9
+ import "../chunk-PI4LLJG4.js";
10
10
  import "../chunk-WYGD2UGN.js";
11
11
  import "../chunk-ZJXSXVFP.js";
12
12
  import "../chunk-IN4M4X7P.js";
13
- import "../chunk-LEHDXPY6.js";
14
- import "../chunk-VTKJOAJD.js";
13
+ import "../chunk-2M34FLAY.js";
14
+ import "../chunk-XTRDCSJB.js";
15
15
  import "../chunk-UA5KS2PL.js";
16
16
  export {
17
17
  classCodec
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  parseClass
3
- } from "../chunk-EISRDJUV.js";
3
+ } from "../chunk-NWDF5HG3.js";
4
4
  import "../chunk-4U55VNC7.js";
5
- import "../chunk-Q6L2RASW.js";
5
+ import "../chunk-S56D6B6C.js";
6
6
  import "../chunk-23LZLBJK.js";
7
7
  import "../chunk-CJYCVNW2.js";
8
- import "../chunk-N4JJNGLZ.js";
8
+ import "../chunk-PI4LLJG4.js";
9
9
  import "../chunk-WYGD2UGN.js";
10
10
  import "../chunk-ZJXSXVFP.js";
11
11
  import "../chunk-IN4M4X7P.js";
12
- import "../chunk-LEHDXPY6.js";
13
- import "../chunk-VTKJOAJD.js";
12
+ import "../chunk-2M34FLAY.js";
13
+ import "../chunk-XTRDCSJB.js";
14
14
  import "../chunk-UA5KS2PL.js";
15
15
  export {
16
16
  parseClass
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  classEntitySchema
3
- } from "../chunk-Q6L2RASW.js";
3
+ } from "../chunk-S56D6B6C.js";
4
4
  import "../chunk-23LZLBJK.js";
5
5
  import "../chunk-CJYCVNW2.js";
6
- import "../chunk-N4JJNGLZ.js";
6
+ import "../chunk-PI4LLJG4.js";
7
7
  import "../chunk-WYGD2UGN.js";
8
8
  import "../chunk-ZJXSXVFP.js";
9
9
  import "../chunk-IN4M4X7P.js";
10
- import "../chunk-LEHDXPY6.js";
11
- import "../chunk-VTKJOAJD.js";
10
+ import "../chunk-2M34FLAY.js";
11
+ import "../chunk-XTRDCSJB.js";
12
12
  import "../chunk-UA5KS2PL.js";
13
13
  export {
14
14
  classEntitySchema
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  featCodec
3
- } from "../chunk-YRTI2FLD.js";
4
- import "../chunk-UYBCC473.js";
5
- import "../chunk-47SCRXGM.js";
3
+ } from "../chunk-3UNP3G4D.js";
4
+ import "../chunk-22MOUU2G.js";
5
+ import "../chunk-OYUEUKKF.js";
6
6
  import "../chunk-ZJXSXVFP.js";
7
- import "../chunk-LEHDXPY6.js";
8
- import "../chunk-VTKJOAJD.js";
7
+ import "../chunk-2M34FLAY.js";
8
+ import "../chunk-XTRDCSJB.js";
9
9
  import "../chunk-UA5KS2PL.js";
10
10
  export {
11
11
  featCodec
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  parseFeat
3
- } from "../chunk-UYBCC473.js";
4
- import "../chunk-47SCRXGM.js";
3
+ } from "../chunk-22MOUU2G.js";
4
+ import "../chunk-OYUEUKKF.js";
5
5
  import "../chunk-ZJXSXVFP.js";
6
- import "../chunk-LEHDXPY6.js";
7
- import "../chunk-VTKJOAJD.js";
6
+ import "../chunk-2M34FLAY.js";
7
+ import "../chunk-XTRDCSJB.js";
8
8
  import "../chunk-UA5KS2PL.js";
9
9
  export {
10
10
  parseFeat
@@ -88,6 +88,15 @@ export declare const featEntitySchema: z.ZodObject<{
88
88
  minimum: z.ZodOptional<z.ZodNumber>;
89
89
  condition: z.ZodOptional<z.ZodString>;
90
90
  subject: z.ZodOptional<z.ZodString>;
91
+ }, z.core.$strip>, z.ZodObject<{
92
+ kind: z.ZodLiteral<"half-proficiency">;
93
+ skills: z.ZodOptional<z.ZodArray<z.ZodString>>;
94
+ round: z.ZodOptional<z.ZodEnum<{
95
+ down: "down";
96
+ up: "up";
97
+ }>>;
98
+ condition: z.ZodOptional<z.ZodString>;
99
+ subject: z.ZodOptional<z.ZodString>;
91
100
  }, z.core.$strip>, z.ZodObject<{
92
101
  kind: z.ZodLiteral<"immune-condition">;
93
102
  condition: z.ZodString;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  featEntitySchema
3
- } from "../chunk-47SCRXGM.js";
3
+ } from "../chunk-OYUEUKKF.js";
4
4
  import "../chunk-ZJXSXVFP.js";
5
- import "../chunk-LEHDXPY6.js";
6
- import "../chunk-VTKJOAJD.js";
5
+ import "../chunk-2M34FLAY.js";
6
+ import "../chunk-XTRDCSJB.js";
7
7
  import "../chunk-UA5KS2PL.js";
8
8
  export {
9
9
  featEntitySchema
package/dist/index.js CHANGED
@@ -5,9 +5,9 @@ import "./chunk-HZA7OE7N.js";
5
5
  import "./chunk-2DFENQIJ.js";
6
6
  import {
7
7
  subclassCodec
8
- } from "./chunk-U3DNWCEI.js";
9
- import "./chunk-5SMMRAO2.js";
10
- import "./chunk-GD2CFJ3T.js";
8
+ } from "./chunk-R747YKS7.js";
9
+ import "./chunk-J77CKYV3.js";
10
+ import "./chunk-BLRW2UU6.js";
11
11
  import {
12
12
  spellInputSchema
13
13
  } from "./chunk-656QCX4U.js";
@@ -19,9 +19,9 @@ import {
19
19
  } from "./chunk-WSVMLNTO.js";
20
20
  import {
21
21
  raceCodec
22
- } from "./chunk-HRG4URUK.js";
23
- import "./chunk-5VTDYZIW.js";
24
- import "./chunk-QCKOVD3K.js";
22
+ } from "./chunk-7YU4NPKR.js";
23
+ import "./chunk-BL3VELKP.js";
24
+ import "./chunk-V6LJFP4R.js";
25
25
  import "./chunk-OZP6JFGT.js";
26
26
  import "./chunk-VQAXTIBW.js";
27
27
  import {
@@ -34,14 +34,14 @@ import {
34
34
  } from "./chunk-6PXTNCBP.js";
35
35
  import {
36
36
  parseMonster
37
- } from "./chunk-WNQ2O2IS.js";
38
- import "./chunk-IVLA24R3.js";
37
+ } from "./chunk-QHMWA3SZ.js";
38
+ import "./chunk-G247QXWW.js";
39
39
  import "./chunk-IKSMX4TN.js";
40
40
  import {
41
41
  optionalFeatureCodec
42
- } from "./chunk-5QM7YNGV.js";
43
- import "./chunk-RW42SHFM.js";
44
- import "./chunk-FYM3ROGA.js";
42
+ } from "./chunk-JANNRGJC.js";
43
+ import "./chunk-PJMG5XV3.js";
44
+ import "./chunk-MQ747UCR.js";
45
45
  import {
46
46
  itemCodec
47
47
  } from "./chunk-4XTNPNQB.js";
@@ -64,21 +64,21 @@ import {
64
64
  } from "./chunk-LSLSG67V.js";
65
65
  import {
66
66
  featCodec
67
- } from "./chunk-YRTI2FLD.js";
68
- import "./chunk-UYBCC473.js";
69
- import "./chunk-47SCRXGM.js";
67
+ } from "./chunk-3UNP3G4D.js";
68
+ import "./chunk-22MOUU2G.js";
69
+ import "./chunk-OYUEUKKF.js";
70
70
  import "./chunk-DEEHHLAP.js";
71
71
  import "./chunk-PDJSUH24.js";
72
72
  import "./chunk-WELIKLZF.js";
73
73
  import {
74
74
  classCodec
75
- } from "./chunk-DIAYWWHG.js";
76
- import "./chunk-EISRDJUV.js";
75
+ } from "./chunk-BIA32MQ5.js";
76
+ import "./chunk-NWDF5HG3.js";
77
77
  import "./chunk-4U55VNC7.js";
78
- import "./chunk-Q6L2RASW.js";
78
+ import "./chunk-S56D6B6C.js";
79
79
  import "./chunk-23LZLBJK.js";
80
80
  import "./chunk-CJYCVNW2.js";
81
- import "./chunk-N4JJNGLZ.js";
81
+ import "./chunk-PI4LLJG4.js";
82
82
  import "./chunk-WYGD2UGN.js";
83
83
  import "./chunk-ZJXSXVFP.js";
84
84
  import {
@@ -91,12 +91,12 @@ import "./chunk-5N2GW72F.js";
91
91
  import "./chunk-JC5UNIVM.js";
92
92
  import {
93
93
  backgroundCodec
94
- } from "./chunk-VMIFD2RB.js";
95
- import "./chunk-2Q374PZ3.js";
96
- import "./chunk-O5WXS3G5.js";
94
+ } from "./chunk-MAH6DCRI.js";
95
+ import "./chunk-4DOMDEBZ.js";
96
+ import "./chunk-JCEV7KYN.js";
97
97
  import "./chunk-IN4M4X7P.js";
98
- import "./chunk-LEHDXPY6.js";
99
- import "./chunk-VTKJOAJD.js";
98
+ import "./chunk-2M34FLAY.js";
99
+ import "./chunk-XTRDCSJB.js";
100
100
  import "./chunk-UA5KS2PL.js";
101
101
 
102
102
  // src/monster/monster.codec.ts
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  migrateLegacy,
3
3
  parseMonster
4
- } from "../chunk-WNQ2O2IS.js";
5
- import "../chunk-IVLA24R3.js";
6
- import "../chunk-N4JJNGLZ.js";
4
+ } from "../chunk-QHMWA3SZ.js";
5
+ import "../chunk-G247QXWW.js";
6
+ import "../chunk-PI4LLJG4.js";
7
7
  import "../chunk-WYGD2UGN.js";
8
8
  import "../chunk-ZJXSXVFP.js";
9
- import "../chunk-LEHDXPY6.js";
10
- import "../chunk-VTKJOAJD.js";
9
+ import "../chunk-2M34FLAY.js";
10
+ import "../chunk-XTRDCSJB.js";
11
11
  import "../chunk-UA5KS2PL.js";
12
12
  export {
13
13
  migrateLegacy,