@dreadwood-types/types 0.1.287 → 0.1.289

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 (52) hide show
  1. package/dist/arcaneRealms.d.ts +18 -0
  2. package/dist/arcaneRealms.d.ts.map +1 -0
  3. package/dist/arcaneRealms.js +25 -0
  4. package/dist/arcaneRealms.js.map +1 -0
  5. package/dist/arcaneRealmsContent.d.ts +144 -0
  6. package/dist/arcaneRealmsContent.d.ts.map +1 -0
  7. package/dist/arcaneRealmsContent.js +199 -0
  8. package/dist/arcaneRealmsContent.js.map +1 -0
  9. package/dist/arcaneRealmsQuestDef.d.ts +38 -0
  10. package/dist/arcaneRealmsQuestDef.d.ts.map +1 -0
  11. package/dist/arcaneRealmsQuestDef.js +191 -0
  12. package/dist/arcaneRealmsQuestDef.js.map +1 -0
  13. package/dist/areaGates.d.ts.map +1 -1
  14. package/dist/areaGates.js +12 -0
  15. package/dist/areaGates.js.map +1 -1
  16. package/dist/attackableNpcs.d.ts.map +1 -1
  17. package/dist/attackableNpcs.js +5 -0
  18. package/dist/attackableNpcs.js.map +1 -1
  19. package/dist/bossSignatures.d.ts +1 -1
  20. package/dist/bossSignatures.d.ts.map +1 -1
  21. package/dist/bossSignatures.js +6 -0
  22. package/dist/bossSignatures.js.map +1 -1
  23. package/dist/constants.d.ts +2 -0
  24. package/dist/constants.d.ts.map +1 -1
  25. package/dist/constants.js.map +1 -1
  26. package/dist/explorerLedger.d.ts +2 -1
  27. package/dist/explorerLedger.d.ts.map +1 -1
  28. package/dist/explorerLedger.js +9 -1
  29. package/dist/explorerLedger.js.map +1 -1
  30. package/dist/fieldGuide.d.ts +92 -0
  31. package/dist/fieldGuide.d.ts.map +1 -0
  32. package/dist/fieldGuide.js +157 -0
  33. package/dist/fieldGuide.js.map +1 -0
  34. package/dist/index.d.ts +5 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +5 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/messages.d.ts +23 -1
  39. package/dist/messages.d.ts.map +1 -1
  40. package/dist/messages.js.map +1 -1
  41. package/dist/quests.d.ts.map +1 -1
  42. package/dist/quests.js +27 -1
  43. package/dist/quests.js.map +1 -1
  44. package/dist/storyQuests.d.ts +1 -1
  45. package/dist/storyQuests.d.ts.map +1 -1
  46. package/dist/storyQuests.js +13 -0
  47. package/dist/storyQuests.js.map +1 -1
  48. package/dist/titles.d.ts +62 -0
  49. package/dist/titles.d.ts.map +1 -0
  50. package/dist/titles.js +77 -0
  51. package/dist/titles.js.map +1 -0
  52. package/package.json +43 -43
@@ -0,0 +1,62 @@
1
+ /**
2
+ * TITLES EARNED IN PLAY (AREA_PROPOSALS.md 2026-10-14, B2; T91): cosmetic words shown after a name ("Wren / Delver") in chat
3
+ * and on the nameplate. A title is EARNED, never given: each is a pure condition on the Explorer's Ledger book (lines, pages,
4
+ * counts), the character's levels and the Field Guide's paid bands, so it needs no extra save and it cannot be lost to a
5
+ * rename, a move or a restart. A character WEARS at most one (`titleSelected`, saved); the server checks the choice against
6
+ * what is earned every time it is shown, so nobody can wear an unearned title. The list is fixed: no free text.
7
+ *
8
+ * Thresholds are PLACEHOLDERS (balance is done last, with James).
9
+ */
10
+ import { type LedgerLevelSkill, type LedgerLevels, type LedgerSection } from './explorerLedger.js';
11
+ export type TitleCondition = {
12
+ kind: 'count';
13
+ section: LedgerSection;
14
+ min: number;
15
+ } | {
16
+ kind: 'page';
17
+ section: LedgerSection;
18
+ } | {
19
+ kind: 'line';
20
+ id: string;
21
+ } | {
22
+ kind: 'level';
23
+ skill: LedgerLevelSkill;
24
+ min: number;
25
+ }
26
+ /** A paid id in the Ledger's paid set (a Field Guide band bonus). */
27
+ | {
28
+ kind: 'paid';
29
+ id: string;
30
+ };
31
+ export type TitleDef = {
32
+ /** Stable; saved as `titleSelected`. Never renamed. */
33
+ id: string;
34
+ /** What is shown after the name. */
35
+ label: string;
36
+ /** Plain words for the picker: how it is earned. */
37
+ how: string;
38
+ when: TitleCondition;
39
+ };
40
+ export declare const TITLES: readonly TitleDef[];
41
+ export declare function titleDef(id: unknown): TitleDef | null;
42
+ /** What a title is judged against. */
43
+ export type TitleContext = {
44
+ /** Every Ledger line id the character has earned. */
45
+ earned: ReadonlySet<string>;
46
+ levels: LedgerLevels;
47
+ /** The Ledger's paid set (Field Guide band bonuses live in it). */
48
+ paid: ReadonlySet<string>;
49
+ };
50
+ export declare function titleEarned(def: TitleDef, ctx: TitleContext): boolean;
51
+ /** The ids of every title a character has earned, in list order. Pure. */
52
+ export declare function titlesEarned(ctx: TitleContext): string[];
53
+ /** The label to show for a chosen title, or null when it is unknown or not earned (the only way a title reaches a nameplate). */
54
+ export declare function titleToShow(selected: unknown, earned: readonly string[]): string | null;
55
+ /** Whatever the database held, made safe: a known title id or ''. */
56
+ export declare function normalizeTitleSelected(raw: unknown): string;
57
+ /** The wire snapshot: what the picker draws (the definitions are in this file). */
58
+ export type TitlesSnapshot = {
59
+ earned: string[];
60
+ selected: string;
61
+ };
62
+ //# sourceMappingURL=titles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"titles.d.ts","sourceRoot":"","sources":["../src/titles.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAyC,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAI1I,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,gBAAgB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AACzD,qEAAqE;GACnE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC,MAAM,MAAM,QAAQ,GAAG;IACrB,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,cAAc,CAAC;CACtB,CAAC;AAMF,eAAO,MAAM,MAAM,EAAE,SAAS,QAAQ,EA+BrC,CAAC;AAIF,wBAAgB,QAAQ,CAAC,EAAE,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAErD;AAED,sCAAsC;AACtC,MAAM,MAAM,YAAY,GAAG;IACzB,qDAAqD;IACrD,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,mEAAmE;IACnE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC3B,CAAC;AAEF,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAOrE;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE,CAExD;AAED,iIAAiI;AACjI,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAGvF;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAE3D;AAED,mFAAmF;AACnF,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC"}
package/dist/titles.js ADDED
@@ -0,0 +1,77 @@
1
+ /**
2
+ * TITLES EARNED IN PLAY (AREA_PROPOSALS.md 2026-10-14, B2; T91): cosmetic words shown after a name ("Wren / Delver") in chat
3
+ * and on the nameplate. A title is EARNED, never given: each is a pure condition on the Explorer's Ledger book (lines, pages,
4
+ * counts), the character's levels and the Field Guide's paid bands, so it needs no extra save and it cannot be lost to a
5
+ * rename, a move or a restart. A character WEARS at most one (`titleSelected`, saved); the server checks the choice against
6
+ * what is earned every time it is shown, so nobody can wear an unearned title. The list is fixed: no free text.
7
+ *
8
+ * Thresholds are PLACEHOLDERS (balance is done last, with James).
9
+ */
10
+ import { ledgerSectionCount, ledgerSectionDone } from './explorerLedger.js';
11
+ import { LEAN_RANKS, leanOutingMark } from './leanRules.js';
12
+ import { fieldGuideBonusId } from './fieldGuide.js';
13
+ function band(b) {
14
+ return { kind: 'paid', id: fieldGuideBonusId(b) };
15
+ }
16
+ export const TITLES = [
17
+ { id: 'wayfarer', label: 'Wayfarer', how: 'Find 25 named places.', when: { kind: 'count', section: 'places', min: 25 } },
18
+ { id: 'cartographer', label: 'Cartographer', how: 'Find every named place.', when: { kind: 'page', section: 'places' } },
19
+ { id: 'odd-jobber', label: 'Odd-Jobber', how: 'Finish 10 quests.', when: { kind: 'count', section: 'quests', min: 10 } },
20
+ { id: 'known-about-town', label: 'Known About Town', how: 'Finish 25 quests.', when: { kind: 'count', section: 'quests', min: 25 } },
21
+ { id: 'keeper-of-waters', label: 'Keeper of the Waters', how: 'Fill the Great Aquarium book.', when: { kind: 'page', section: 'fish' } },
22
+ { id: 'lair-cleaner', label: 'Lair Cleaner', how: 'Beat 5 named bosses.', when: { kind: 'count', section: 'bosses', min: 5 } },
23
+ { id: 'doorwalker', label: 'Doorwalker', how: 'Clear every world event.', when: { kind: 'page', section: 'events' } },
24
+ { id: 'ringbreaker', label: 'Ringbreaker', how: 'Help bring down a crowd boss at a Ring.', when: { kind: 'count', section: 'ring', min: 1 } },
25
+ { id: 'yard-champion', label: 'Yard Champion', how: 'Win every bout in the Capital sparring yard.', when: { kind: 'page', section: 'yard' } },
26
+ { id: 'derby-champion', label: 'Derby Champion', how: 'Take first place on a Fishing Derby board.', when: { kind: 'line', id: 'derby:red' } },
27
+ { id: 'cup-holder', label: "Angler's Cup", how: 'Land the best catch of a Fishing Derby round.', when: { kind: 'line', id: 'derby:cup' } },
28
+ { id: 'sled-rider', label: 'Sled Rider', how: "Ride Hask's Sled Run to the bottom.", when: { kind: 'line', id: 'sled:finish' } },
29
+ { id: 'fleet-sled', label: 'Fleet Sled', how: "Come down Hask's Sled Run in under 8.8 seconds.", when: { kind: 'line', id: 'sled:fast' } },
30
+ { id: 'heartwood-feller', label: 'Heartwood Feller', how: 'Help fell a heartwood in the Rotwood Grove.', when: { kind: 'line', id: 'hunt:felled' } },
31
+ { id: 'step-clear', label: 'Step Clear', how: "Step clear of Captain Rowena's crew volley.", when: { kind: 'line', id: 'fort:volley-dodged' } },
32
+ { id: 'delver', label: 'Delver', how: "Step clear of the older dungeons' boss moves and open a wolf den's chest (3 lines of the Delvers' Ladder page).", when: { kind: 'count', section: 'delve', min: 3 } },
33
+ { id: 'bounty-taker', label: 'Bounty Taker', how: 'Collect a Wanted Board bounty in the woods.', when: { kind: 'line', id: 'wanted:claimed' } },
34
+ ...LEAN_RANKS.map((r) => ({
35
+ id: `lean-rank-${r.id.slice(-1)}`,
36
+ label: r.title,
37
+ how: `Lean rank: fell ${r.need} lean ${r.need === 1 ? 'lair' : 'lairs'} with no healing.`,
38
+ when: { kind: 'line', id: r.id },
39
+ })),
40
+ { id: 'the-lean', label: 'the Lean', how: 'Fell 25 creatures in one outing in the woods with no healing.', when: { kind: 'line', id: leanOutingMark(25) } },
41
+ { id: 'naturalist', label: 'Naturalist', how: 'Complete the Field Guide for levels 1-10.', when: band('1-10') },
42
+ { id: 'field-naturalist', label: 'Field Naturalist', how: 'Complete the Field Guide for levels 11-20.', when: band('11-20') },
43
+ { id: 'master-naturalist', label: 'Master Naturalist', how: 'Complete the Field Guide for levels 21-30.', when: band('21-30') },
44
+ { id: 'grand-naturalist', label: 'Grand Naturalist', how: 'Complete the Field Guide for levels 31-40.', when: band('31-40') },
45
+ { id: 'hardened', label: 'Hardened', how: 'Reach Combat level 30.', when: { kind: 'level', skill: 'combat', min: 30 } },
46
+ { id: 'itchy-feet', label: 'Itchy Feet', how: 'Reach Explorer level 20.', when: { kind: 'level', skill: 'explorer', min: 20 } },
47
+ ];
48
+ const BY_ID = new Map(TITLES.map((t) => [t.id, t]));
49
+ export function titleDef(id) {
50
+ return typeof id === 'string' ? (BY_ID.get(id) ?? null) : null;
51
+ }
52
+ export function titleEarned(def, ctx) {
53
+ const w = def.when;
54
+ if (w.kind === 'count')
55
+ return ledgerSectionCount(w.section, ctx.earned).have >= w.min;
56
+ if (w.kind === 'page')
57
+ return ledgerSectionDone(w.section, ctx.earned);
58
+ if (w.kind === 'line')
59
+ return ctx.earned.has(w.id);
60
+ if (w.kind === 'paid')
61
+ return ctx.paid.has(w.id);
62
+ return (ctx.levels[w.skill] ?? 0) >= w.min;
63
+ }
64
+ /** The ids of every title a character has earned, in list order. Pure. */
65
+ export function titlesEarned(ctx) {
66
+ return TITLES.filter((t) => titleEarned(t, ctx)).map((t) => t.id);
67
+ }
68
+ /** The label to show for a chosen title, or null when it is unknown or not earned (the only way a title reaches a nameplate). */
69
+ export function titleToShow(selected, earned) {
70
+ const def = titleDef(selected);
71
+ return def && earned.includes(def.id) ? def.label : null;
72
+ }
73
+ /** Whatever the database held, made safe: a known title id or ''. */
74
+ export function normalizeTitleSelected(raw) {
75
+ return titleDef(raw) ? raw : '';
76
+ }
77
+ //# sourceMappingURL=titles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"titles.js","sourceRoot":"","sources":["../src/titles.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,43 +1,43 @@
1
- {
2
- "name": "@dreadwood-types/types",
3
- "version": "0.1.287",
4
- "description": "Public wire protocol and client-safe constants for Dreadwoods",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "types": "./dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js",
12
- "default": "./dist/index.js"
13
- },
14
- "./legacy": {
15
- "types": "./dist/legacy.d.ts",
16
- "import": "./dist/legacy.js",
17
- "default": "./dist/legacy.js"
18
- }
19
- },
20
- "files": [
21
- "dist"
22
- ],
23
- "scripts": {
24
- "build": "tsc -p tsconfig.json",
25
- "test": "node --test scripts/animation-test.mjs scripts/starter-jobs-test.mjs scripts/cooking-nudge-test.mjs scripts/surface-chart-test.mjs scripts/south-expansion-test.mjs scripts/rudd-test.mjs scripts/cave-map-test.mjs scripts/birch-combat-test.mjs scripts/fort-rook-bosses-test.mjs scripts/bounty-first-test.mjs scripts/bounty-high-tiers-test.mjs scripts/running-test.mjs scripts/energy-test.mjs scripts/starter-town-test.mjs scripts/starter-expansion-test.mjs scripts/five-arches-test.mjs scripts/landing-test.mjs scripts/cove-ship-test.mjs scripts/south-fields-quests-test.mjs scripts/south-fields-errands-test.mjs scripts/arcane-lands-test.mjs scripts/fair-folk-test.mjs scripts/fair-contests-test.mjs scripts/missing-shipment-test.mjs scripts/world-boss-ring-test.mjs scripts/ringstone-fight-test.mjs scripts/highstone-test.mjs scripts/fenstone-test.mjs scripts/lair-awakening-test.mjs scripts/hopewood-wildlife-test.mjs scripts/hollin-wildlife-test.mjs scripts/hopewood-quests-test.mjs scripts/western-train-test.mjs scripts/moving-train-test.mjs scripts/train-circuit-test.mjs scripts/forge-halt-test.mjs scripts/forge-polish-test.mjs scripts/western-station-test.mjs scripts/hollin-quests-test.mjs scripts/western-lost-supplies-test.mjs scripts/western-herbal-remedies-test.mjs scripts/western-field-shrine-test.mjs scripts/western-kingdoms-test.mjs scripts/lantern-wake-test.mjs scripts/brindlecross-test.mjs scripts/brindlecross-quest-test.mjs scripts/greenwood-wilds-test.mjs scripts/greenwood-wildlife-test.mjs scripts/greenwood-quest-test.mjs scripts/dwarf-road-wildlife-test.mjs scripts/dwarf-road-test.mjs scripts/riversend-test.mjs scripts/riversend-content-test.mjs scripts/gatewarden-rounds-test.mjs scripts/boss-e8-test.mjs scripts/lantern-wake-town-test.mjs scripts/world-regions-test.mjs scripts/copse-wildlife-test.mjs scripts/copse-quests-test.mjs scripts/marches-wildlife-test.mjs scripts/marches-quests-test.mjs scripts/train-seats-test.mjs scripts/lantern-wake-gallery-test.mjs scripts/lantern-wake-wildlife-test.mjs scripts/lantern-wake-quest-test.mjs scripts/dwarf-hold-test.mjs scripts/western-line-texts-test.mjs scripts/xp-test.mjs scripts/bank-test.mjs scripts/timed-access-test.mjs scripts/ground-items-test.mjs scripts/name-filter-test.mjs scripts/woodwork-logs-test.mjs scripts/area-gates-test.mjs scripts/frozen-dungeons-test.mjs scripts/long-winter-test.mjs scripts/roster-delta-test.mjs scripts/bow-ladder-test.mjs scripts/lantern-wake-ledge-test.mjs scripts/explorer-ledger-test.mjs scripts/ore-smithing-test.mjs scripts/red-waste-test.mjs scripts/red-waste-folk-test.mjs scripts/daily-hooks-test.mjs scripts/sparring-yard-test.mjs scripts/t16-siege-floe-beach-test.mjs scripts/mammoth-road-test.mjs scripts/mammoth-road-test.mjs scripts/gulls-map-test.mjs scripts/gulls-rook-test.mjs scripts/ride-the-line-test.mjs scripts/gallowmere-test.mjs scripts/gallowmere-content-test.mjs scripts/fishing-derby-test.mjs scripts/sled-run-test.mjs scripts/eastern-marches-a-test.mjs scripts/windward-chalkshell-test.mjs scripts/gullhook-head-test.mjs scripts/webfen-test.mjs scripts/safe-pockets-test.mjs scripts/gallowmere-extras-test.mjs scripts/t53-high-ledge-skill-quests-test.mjs scripts/camp-traders-recommended-test.mjs scripts/west-coast-test.mjs scripts/heartwood-hunt-test.mjs scripts/calverton-extension-test.mjs scripts/gravewatch-test.mjs scripts/tide-of-blood-test.mjs scripts/north-wilds-test.mjs scripts/toll-road-test.mjs scripts/capital-quests-test.mjs scripts/capital-shops-test.mjs scripts/lean-wanted-test.mjs scripts/delvers-ladder-test.mjs scripts/last-signal-test.mjs scripts/sea-salt-test.mjs",
26
- "dev": "tsc -p tsconfig.json --watch",
27
- "prepare": "npm run build",
28
- "prepublishOnly": "npm run build"
29
- },
30
- "devDependencies": {
31
- "typescript": "^5.9.2"
32
- },
33
- "repository": {
34
- "type": "git",
35
- "url": "https://github.com/JamesPhelps/dreadwoods-types.git"
36
- },
37
- "publishConfig": {
38
- "access": "public"
39
- },
40
- "engines": {
41
- "node": ">=22"
42
- }
43
- }
1
+ {
2
+ "name": "@dreadwood-types/types",
3
+ "version": "0.1.289",
4
+ "description": "Public wire protocol and client-safe constants for Dreadwoods",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js",
12
+ "default": "./dist/index.js"
13
+ },
14
+ "./legacy": {
15
+ "types": "./dist/legacy.d.ts",
16
+ "import": "./dist/legacy.js",
17
+ "default": "./dist/legacy.js"
18
+ }
19
+ },
20
+ "files": [
21
+ "dist"
22
+ ],
23
+ "scripts": {
24
+ "build": "tsc -p tsconfig.json",
25
+ "test": "node --test scripts/animation-test.mjs scripts/starter-jobs-test.mjs scripts/cooking-nudge-test.mjs scripts/surface-chart-test.mjs scripts/south-expansion-test.mjs scripts/rudd-test.mjs scripts/cave-map-test.mjs scripts/birch-combat-test.mjs scripts/fort-rook-bosses-test.mjs scripts/bounty-first-test.mjs scripts/bounty-high-tiers-test.mjs scripts/running-test.mjs scripts/energy-test.mjs scripts/starter-town-test.mjs scripts/starter-expansion-test.mjs scripts/five-arches-test.mjs scripts/landing-test.mjs scripts/cove-ship-test.mjs scripts/south-fields-quests-test.mjs scripts/south-fields-errands-test.mjs scripts/arcane-lands-test.mjs scripts/fair-folk-test.mjs scripts/fair-contests-test.mjs scripts/missing-shipment-test.mjs scripts/world-boss-ring-test.mjs scripts/ringstone-fight-test.mjs scripts/highstone-test.mjs scripts/fenstone-test.mjs scripts/lair-awakening-test.mjs scripts/hopewood-wildlife-test.mjs scripts/hollin-wildlife-test.mjs scripts/hopewood-quests-test.mjs scripts/western-train-test.mjs scripts/moving-train-test.mjs scripts/train-circuit-test.mjs scripts/forge-halt-test.mjs scripts/forge-polish-test.mjs scripts/western-station-test.mjs scripts/hollin-quests-test.mjs scripts/western-lost-supplies-test.mjs scripts/western-herbal-remedies-test.mjs scripts/western-field-shrine-test.mjs scripts/western-kingdoms-test.mjs scripts/lantern-wake-test.mjs scripts/brindlecross-test.mjs scripts/brindlecross-quest-test.mjs scripts/greenwood-wilds-test.mjs scripts/greenwood-wildlife-test.mjs scripts/greenwood-quest-test.mjs scripts/dwarf-road-wildlife-test.mjs scripts/dwarf-road-test.mjs scripts/riversend-test.mjs scripts/riversend-content-test.mjs scripts/gatewarden-rounds-test.mjs scripts/boss-e8-test.mjs scripts/lantern-wake-town-test.mjs scripts/world-regions-test.mjs scripts/copse-wildlife-test.mjs scripts/copse-quests-test.mjs scripts/marches-wildlife-test.mjs scripts/marches-quests-test.mjs scripts/train-seats-test.mjs scripts/lantern-wake-gallery-test.mjs scripts/lantern-wake-wildlife-test.mjs scripts/lantern-wake-quest-test.mjs scripts/dwarf-hold-test.mjs scripts/western-line-texts-test.mjs scripts/xp-test.mjs scripts/bank-test.mjs scripts/timed-access-test.mjs scripts/ground-items-test.mjs scripts/name-filter-test.mjs scripts/woodwork-logs-test.mjs scripts/area-gates-test.mjs scripts/arcane-realms-test.mjs scripts/frozen-dungeons-test.mjs scripts/long-winter-test.mjs scripts/roster-delta-test.mjs scripts/bow-ladder-test.mjs scripts/lantern-wake-ledge-test.mjs scripts/explorer-ledger-test.mjs scripts/ore-smithing-test.mjs scripts/red-waste-test.mjs scripts/red-waste-folk-test.mjs scripts/daily-hooks-test.mjs scripts/sparring-yard-test.mjs scripts/t16-siege-floe-beach-test.mjs scripts/mammoth-road-test.mjs scripts/mammoth-road-test.mjs scripts/gulls-map-test.mjs scripts/gulls-rook-test.mjs scripts/ride-the-line-test.mjs scripts/gallowmere-test.mjs scripts/gallowmere-content-test.mjs scripts/fishing-derby-test.mjs scripts/sled-run-test.mjs scripts/eastern-marches-a-test.mjs scripts/windward-chalkshell-test.mjs scripts/gullhook-head-test.mjs scripts/webfen-test.mjs scripts/safe-pockets-test.mjs scripts/gallowmere-extras-test.mjs scripts/t53-high-ledge-skill-quests-test.mjs scripts/camp-traders-recommended-test.mjs scripts/west-coast-test.mjs scripts/heartwood-hunt-test.mjs scripts/calverton-extension-test.mjs scripts/gravewatch-test.mjs scripts/tide-of-blood-test.mjs scripts/north-wilds-test.mjs scripts/toll-road-test.mjs scripts/capital-quests-test.mjs scripts/capital-shops-test.mjs scripts/lean-wanted-test.mjs scripts/delvers-ladder-test.mjs scripts/last-signal-test.mjs scripts/sea-salt-test.mjs scripts/field-guide-test.mjs scripts/titles-test.mjs",
26
+ "dev": "tsc -p tsconfig.json --watch",
27
+ "prepare": "npm run build",
28
+ "prepublishOnly": "npm run build"
29
+ },
30
+ "devDependencies": {
31
+ "typescript": "^5.9.2"
32
+ },
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://github.com/JamesPhelps/dreadwoods-types.git"
36
+ },
37
+ "publishConfig": {
38
+ "access": "public"
39
+ },
40
+ "engines": {
41
+ "node": ">=22"
42
+ }
43
+ }