@randsum/daggerheart 0.1.34

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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 alxjrvs@gmail.com
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,143 @@
1
+ <div align="center">
2
+ <img width="150" height="150" src="https://raw.githubusercontent.com/RANDSUM/randsum/main/icon.webp">
3
+ <h1>@randsum/daggerheart</h1>
4
+ <h3>Daggerheart Dice, by @randsum</h3>
5
+
6
+ [![npm version](https://img.shields.io/npm/v/@randsum/daggerheart)](https://www.npmjs.com/package/@randsum/daggerheart)
7
+ [![bundle size](https://img.shields.io/bundlephobia/minzip/@randsum/daggerheart)](https://bundlephobia.com/package/@randsum/daggerheart)
8
+ [![Types](https://img.shields.io/npm/types/@randsum/daggerheart)](https://www.npmjs.com/package/@randsum/daggerheart)
9
+ [![License](https://img.shields.io/npm/l/@randsum/daggerheart)](https://github.com/RANDSUM/randsum/blob/main/LICENSE)
10
+ [![Downloads](https://img.shields.io/npm/dm/@randsum/daggerheart)](https://www.npmjs.com/package/@randsum/daggerheart)
11
+
12
+ </div>
13
+
14
+ A type-safe implementation of [Daggerheart](https://daggerheart.com/) dice.
15
+
16
+ ## Installation
17
+
18
+ ```bash
19
+ npm install @randsum/daggerheart
20
+ # or
21
+ yarn add @randsum/daggerheart
22
+ # or
23
+ bun add @randsum/daggerheart
24
+ ```
25
+
26
+ ## Usage
27
+
28
+ ```typescript
29
+ import { rollDH, meetOrBeatDH } from '@randsum/daggerheart'
30
+ import type { RollArgumentDH } from '@randsum/daggerheart'
31
+
32
+ // Basic Hope and Fear roll
33
+ const result = rollDH({ modifier: 2 })
34
+ // result.type: 'hope' | 'fear' | 'critical hope'
35
+ // result.total: number (sum of both dice + modifier)
36
+ // result.rolls: { hope: number, fear: number, modifier: number }
37
+
38
+ // Roll with Advantage (adds d6 to total)
39
+ rollDH({
40
+ modifier: 3,
41
+ rollingWith: 'Advantage'
42
+ })
43
+
44
+ // Roll with Disadvantage (subtracts d6 from total)
45
+ rollDH({
46
+ modifier: -1,
47
+ rollingWith: 'Disadvantage'
48
+ })
49
+
50
+ // Check if roll meets or beats Difficulty Class
51
+ const rollArgs: RollArgumentDH = {
52
+ modifier: 4,
53
+ rollingWith: 'Advantage'
54
+ }
55
+ const result = meetOrBeatDH(12, rollArgs)
56
+ // result.success: boolean
57
+ // result.description: string (formatted result description)
58
+ // result.target: number (the DC that was tested against)
59
+ ```
60
+
61
+ ## API Reference
62
+
63
+ ### `rollDH`
64
+
65
+ Makes a Hope and Fear roll following Daggerheart rules.
66
+
67
+ ```typescript
68
+ function rollDH(args: RollArgumentDH): RollResultDH
69
+ ```
70
+
71
+ **Parameters:**
72
+
73
+ - `args.modifier` (optional): Numeric modifier to add to the roll total
74
+ - `args.rollingWith` (optional): 'Advantage' or 'Disadvantage'
75
+
76
+ **Returns:**
77
+
78
+ - `type`: 'hope' (Hope > Fear), 'fear' (Fear > Hope), or 'critical hope' (Hope = Fear)
79
+ - `total`: Sum of both dice + modifier ± advantage/disadvantage d6
80
+ - `rolls`: Object containing individual Hope, Fear, and modifier values
81
+
82
+ ### `meetOrBeatDH`
83
+
84
+ Checks if a Daggerheart roll meets or exceeds a Difficulty Class.
85
+
86
+ ```typescript
87
+ function meetOrBeatDH(
88
+ difficultyClass: number,
89
+ rollArg: RollArgumentDH
90
+ ): MeetOrBeatResultDH
91
+ ```
92
+
93
+ **Parameters:**
94
+
95
+ - `difficultyClass`: The target number to meet or exceed
96
+ - `rollArg`: Roll arguments (same as `rollDH`)
97
+
98
+ **Returns:**
99
+
100
+ - All properties from `RollResultDH`, plus:
101
+ - `success`: `true` if roll meets/exceeds DC (Critical Hope always succeeds)
102
+ - `target`: The DC that was tested against
103
+ - `description`: Formatted description of the result
104
+
105
+ ## Daggerheart Mechanics
106
+
107
+ ## Type Definitions
108
+
109
+ ```typescript
110
+ type AdvantageDisadvantageDH = 'Advantage' | 'Disadvantage'
111
+
112
+ interface RollArgumentDH {
113
+ modifier?: number
114
+ rollingWith?: AdvantageDisadvantageDH
115
+ }
116
+
117
+ type RollResultDHType = 'hope' | 'fear' | 'critical hope'
118
+
119
+ interface RollResultDH {
120
+ type: RollResultDHType
121
+ total: number
122
+ rolls: {
123
+ hope: number
124
+ fear: number
125
+ modifier: number
126
+ }
127
+ }
128
+
129
+ interface MeetOrBeatResultDH extends RollResultDH {
130
+ success: boolean
131
+ target: number
132
+ description: string
133
+ }
134
+ ```
135
+
136
+ ## Related Packages
137
+
138
+ - [@randsum/dice](https://github.com/RANDSUM/randsum/tree/main/packages/dice): Core dice rolling implementation
139
+ - [@randsum/notation](https://github.com/RANDSUM/randsum/tree/main/packages/notation): Dice notation parser
140
+
141
+ <div align="center">
142
+ Made with 👹 by <a href="https://github.com/RANDSUM">RANDSUM</a>
143
+ </div>
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ var d=require("node:module");var{defineProperty:u,getOwnPropertyNames:D,getOwnPropertyDescriptor:m}=Object,f=Object.prototype.hasOwnProperty;var i=new WeakMap,H=(e)=>{var t=i.get(e),n;if(t)return t;if(t=u({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")D(e).map((r)=>!f.call(t,r)&&u(t,r,{get:()=>e[r],enumerable:!(n=m(e,r))||n.enumerable}));return i.set(e,t),t};var R=(e,t)=>{for(var n in t)u(e,n,{get:t[n],enumerable:!0,configurable:!0,set:(r)=>t[n]=()=>r})};var h={};R(h,{rollDH:()=>o,meetOrBeatDH:()=>c});module.exports=H(h);var a=require("@randsum/dice");function o({modifier:e=0,rollingWith:t}){let n={quantity:2,sides:12,modifiers:{plus:e}},{result:[r,l],total:p}=a.roll(n);if(r===void 0||l===void 0)throw new Error("Failed to roll hope and fear");return{type:g(r,l),total:y(p,t),rolls:{hope:r,fear:l,modifier:e}}}function g(e,t){if(e===t)return"critical hope";if(e>t)return"hope";return"fear"}function y(e,t){if(t){if(t==="Advantage")return e+s();return e-s()}return e}function s(){return a.roll({quantity:1,sides:6}).total}function c(e,t){let n=o(t),r={...n,success:n.type==="critical hope"?!0:n.total>=e,target:e};return{...r,description:A(r)}}function A({type:e,success:t}){if(e==="critical hope")return"Critical Success (With Hope)";if(t)return`Success with ${e}`;return`Failure with ${e}`}
@@ -0,0 +1,23 @@
1
+ type AdvantageDisadvantageDH = "Advantage" | "Disadvantage";
2
+ interface RollArgumentDH {
3
+ modifier?: number;
4
+ rollingWith?: AdvantageDisadvantageDH;
5
+ }
6
+ type RollResultDHType = "hope" | "fear" | "critical hope";
7
+ interface RollResultDH {
8
+ type: RollResultDHType;
9
+ total: number;
10
+ rolls: {
11
+ hope: number
12
+ fear: number
13
+ modifier: number
14
+ };
15
+ }
16
+ interface MeetOrBeatResultDH extends RollResultDH {
17
+ success: boolean;
18
+ target: number;
19
+ description: string;
20
+ }
21
+ declare function meetOrBeatDH(difficultyClass: number, rollArg: RollArgumentDH): MeetOrBeatResultDH;
22
+ declare function rollDH({ modifier, rollingWith }: RollArgumentDH): RollResultDH;
23
+ export { rollDH, meetOrBeatDH, RollResultDHType, RollResultDH, RollArgumentDH, MeetOrBeatResultDH, AdvantageDisadvantageDH };
@@ -0,0 +1,23 @@
1
+ type AdvantageDisadvantageDH = "Advantage" | "Disadvantage";
2
+ interface RollArgumentDH {
3
+ modifier?: number;
4
+ rollingWith?: AdvantageDisadvantageDH;
5
+ }
6
+ type RollResultDHType = "hope" | "fear" | "critical hope";
7
+ interface RollResultDH {
8
+ type: RollResultDHType;
9
+ total: number;
10
+ rolls: {
11
+ hope: number
12
+ fear: number
13
+ modifier: number
14
+ };
15
+ }
16
+ interface MeetOrBeatResultDH extends RollResultDH {
17
+ success: boolean;
18
+ target: number;
19
+ description: string;
20
+ }
21
+ declare function meetOrBeatDH(difficultyClass: number, rollArg: RollArgumentDH): MeetOrBeatResultDH;
22
+ declare function rollDH({ modifier, rollingWith }: RollArgumentDH): RollResultDH;
23
+ export { rollDH, meetOrBeatDH, RollResultDHType, RollResultDH, RollArgumentDH, MeetOrBeatResultDH, AdvantageDisadvantageDH };
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ import{roll as a}from"@randsum/dice";function l({modifier:e=0,rollingWith:t}){let n={quantity:2,sides:12,modifiers:{plus:e}},{result:[r,o],total:i}=a(n);if(r===void 0||o===void 0)throw new Error("Failed to roll hope and fear");return{type:s(r,o),total:c(i,t),rolls:{hope:r,fear:o,modifier:e}}}function s(e,t){if(e===t)return"critical hope";if(e>t)return"hope";return"fear"}function c(e,t){if(t){if(t==="Advantage")return e+u();return e-u()}return e}function u(){return a({quantity:1,sides:6}).total}function p(e,t){let n=l(t),r={...n,success:n.type==="critical hope"?!0:n.total>=e,target:e};return{...r,description:D(r)}}function D({type:e,success:t}){if(e==="critical hope")return"Critical Success (With Hope)";if(t)return`Success with ${e}`;return`Failure with ${e}`}export{l as rollDH,p as meetOrBeatDH};
@@ -0,0 +1,3 @@
1
+ export { meetOrBeatDH } from './meetOrBeatDH';
2
+ export { rollDH } from './rollDH';
3
+ export type { AdvantageDisadvantageDH, MeetOrBeatResultDH, RollArgumentDH, RollResultDH, RollResultDHType } from './types';
@@ -0,0 +1,2 @@
1
+ export { meetOrBeatDH } from './meetOrBeatDH';
2
+ export { rollDH } from './rollDH';
@@ -0,0 +1,2 @@
1
+ import type { MeetOrBeatResultDH, RollArgumentDH } from './types';
2
+ export declare function meetOrBeatDH(difficultyClass: number, rollArg: RollArgumentDH): MeetOrBeatResultDH;
@@ -0,0 +1,22 @@
1
+ import { rollDH } from './rollDH';
2
+ export function meetOrBeatDH(difficultyClass, rollArg) {
3
+ const result = rollDH(rollArg);
4
+ const core = {
5
+ ...result,
6
+ success: result.type === 'critical hope' ? true : result.total >= difficultyClass,
7
+ target: difficultyClass
8
+ };
9
+ return {
10
+ ...core,
11
+ description: formatDescription(core)
12
+ };
13
+ }
14
+ function formatDescription({ type, success }) {
15
+ if (type === 'critical hope') {
16
+ return 'Critical Success (With Hope)';
17
+ }
18
+ if (success) {
19
+ return `Success with ${type}`;
20
+ }
21
+ return `Failure with ${type}`;
22
+ }
@@ -0,0 +1,2 @@
1
+ import type { RollArgumentDH, RollResultDH } from './types';
2
+ export declare function rollDH({ modifier, rollingWith }: RollArgumentDH): RollResultDH;
@@ -0,0 +1,45 @@
1
+ import { roll } from '@randsum/dice';
2
+ export function rollDH({ modifier = 0, rollingWith }) {
3
+ const arg = {
4
+ quantity: 2,
5
+ sides: 12,
6
+ modifiers: { plus: modifier }
7
+ };
8
+ const { result: [hope, fear], total } = roll(arg);
9
+ if (hope === undefined || fear === undefined) {
10
+ throw new Error('Failed to roll hope and fear');
11
+ }
12
+ return {
13
+ type: calculateType(hope, fear),
14
+ total: calculateTotal(total, rollingWith),
15
+ rolls: {
16
+ hope,
17
+ fear,
18
+ modifier
19
+ }
20
+ };
21
+ }
22
+ function calculateType(hope, fear) {
23
+ if (hope === fear) {
24
+ return 'critical hope';
25
+ }
26
+ if (hope > fear) {
27
+ return 'hope';
28
+ }
29
+ return 'fear';
30
+ }
31
+ function calculateTotal(total, rollingWith) {
32
+ if (rollingWith) {
33
+ if (rollingWith === 'Advantage') {
34
+ return total + advantageDie();
35
+ }
36
+ return total - advantageDie();
37
+ }
38
+ return total;
39
+ }
40
+ function advantageDie() {
41
+ return roll({
42
+ quantity: 1,
43
+ sides: 6
44
+ }).total;
45
+ }
@@ -0,0 +1,20 @@
1
+ export type AdvantageDisadvantageDH = 'Advantage' | 'Disadvantage';
2
+ export interface RollArgumentDH {
3
+ modifier?: number;
4
+ rollingWith?: AdvantageDisadvantageDH;
5
+ }
6
+ export type RollResultDHType = 'hope' | 'fear' | 'critical hope';
7
+ export interface RollResultDH {
8
+ type: RollResultDHType;
9
+ total: number;
10
+ rolls: {
11
+ hope: number;
12
+ fear: number;
13
+ modifier: number;
14
+ };
15
+ }
16
+ export interface MeetOrBeatResultDH extends RollResultDH {
17
+ success: boolean;
18
+ target: number;
19
+ description: string;
20
+ }
File without changes
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.es2024.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../core/dist/index.d.ts","../../notation/dist/index.d.ts","../../dice/dist/index.d.ts","../src/types.ts","../src/rolldh.ts","../src/meetorbeatdh.ts","../src/index.ts","../../../node_modules/bun-types/globals.d.ts","../../../node_modules/bun-types/s3.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/bun-types/fetch.d.ts","../../../node_modules/bun-types/bun.d.ts","../../../node_modules/@types/bun/index.d.ts","../../../node_modules/bun-types/extensions.d.ts","../../../node_modules/bun-types/devserver.d.ts","../../../node_modules/bun-types/ffi.d.ts","../../../node_modules/bun-types/html-rewriter.d.ts","../../../node_modules/bun-types/jsc.d.ts","../../../node_modules/bun-types/sqlite.d.ts","../../../node_modules/bun-types/test.d.ts","../../../node_modules/bun-types/wasm.d.ts","../../../node_modules/bun-types/overrides.d.ts","../../../node_modules/bun-types/deprecated.d.ts","../../../node_modules/bun-types/redis.d.ts","../../../node_modules/bun-types/shell.d.ts","../../../node_modules/bun-types/bun.ns.d.ts","../../../node_modules/bun-types/index.d.ts"],"fileIdsList":[[86,87,95,100,186,187,190,196,198,199,200,202],[86,87,95,97,100,186,187,190,196,198,199,200],[86,87,95,99,100,186,187,190,196,198,199,200],[86,87,100,186,187,190,196,198,199,200],[86,87,95,100,105,135,186,187,190,196,198,199,200],[86,87,95,100,101,106,112,113,120,132,143,186,187,190,196,198,199,200],[86,87,95,100,101,102,112,120,186,187,190,196,198,199,200],[86,87,95,100,186,187,190,196,198,199,200],[86,87,90,91,92,95,100,186,187,190,196,198,199,200],[86,87,95,100,103,144,186,187,190,196,198,199,200],[86,87,95,100,104,105,113,121,186,187,190,196,198,199,200],[86,87,95,100,105,132,140,186,187,190,196,198,199,200],[86,87,95,100,106,108,112,120,186,187,190,196,198,199,200],[86,87,95,99,100,107,186,187,190,196,198,199,200],[86,87,95,100,108,109,186,187,190,196,198,199,200],[86,87,95,100,112,186,187,190,196,198,199,200],[86,87,95,100,110,112,186,187,190,196,198,199,200],[86,87,95,99,100,112,186,187,190,196,198,199,200],[86,87,95,100,112,113,114,132,143,186,187,190,196,198,199,200],[86,87,95,100,112,113,114,127,132,135,186,187,190,196,197,198,199,200],[86,87,95,100,148,185,186,187,190,196,198,199,200],[86,87,95,100,108,112,115,120,132,143,185,186,187,190,196,198,199,200],[86,87,95,100,112,113,115,116,120,132,140,143,186,187,190,196,198,199,200],[86,87,95,100,115,117,132,140,143,186,187,190,196,198,199,200],[86,87,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,186,187,190,196,198,199,200],[86,87,95,100,112,118,186,187,190,196,198,199,200],[86,87,95,100,119,143,186,187,190,196,198,199,200],[86,87,95,100,108,112,120,132,186,187,190,196,198,199,200],[86,87,95,100,121,186,187,190,196,198,199,200],[86,87,95,100,122,186,187,190,196,198,199,200],[86,87,95,99,100,123,186,187,190,196,198,199,200],[86,87,95,97,98,99,100,101,102,103,104,105,106,107,108,109,110,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,186,187,190,196,197,198,199,200],[86,87,95,100,125,186,187,190,196,198,199,200],[86,87,95,100,126,186,187,190,196,198,199,200],[86,87,95,100,112,127,128,186,187,190,196,198,199,200],[86,87,95,100,127,129,144,146,186,187,190,196,198,199,200],[86,87,95,100,112,132,133,135,186,187,190,196,198,199,200],[86,87,95,100,134,135,186,187,190,196,198,199,200],[86,87,95,100,132,133,186,187,190,196,198,199,200],[86,87,95,100,135,186,187,190,196,198,199,200],[86,87,95,100,136,186,187,190,196,198,199,200],[86,87,95,97,100,132,186,187,190,196,198,199,200],[86,87,95,100,112,138,139,186,187,190,196,198,199,200],[86,87,95,100,138,139,186,187,190,196,198,199,200],[86,87,95,100,105,120,132,140,186,187,190,196,197,198,199,200],[86,87,95,100,141,186,187,190,196,198,199,200],[86,87,95,100,120,142,186,187,190,196,198,199,200],[86,87,95,100,115,126,143,186,187,190,196,198,199,200],[86,87,95,100,105,144,186,187,190,196,198,199,200],[86,87,95,100,132,145,186,187,190,196,198,199,200],[86,87,95,100,119,146,186,187,190,196,198,199,200],[86,87,95,100,147,186,187,190,196,198,199,200],[86,87,95,100,105,112,114,123,132,143,146,148,186,187,190,196,198,199,200],[86,87,95,100,132,149,186,187,190,196,198,199,200],[86,87,95,100,105,113,115,140,144,148,185,186,190,191,196,197,198,199,200],[86,87,95,100,186,187,190,196,199,200],[86,87,95,100,186,187,196,198,199,200],[86,87,95,100,185,187,190,196,198,199,200],[87,95,100,105,123,132,135,140,144,148,186,187,190,196,198,199,200],[86,87,95,100,150,186,187,189,190,191,192,193,194,195,196,197,198,199,200,201],[86,87,95,100,105,113,114,121,140,149,186,187,190,196,198,199,200],[86,87,95,100,186,187,190,196,198,200],[86,95,100,113,186,187,190,196,198,199,200],[86,87,95,100,186,187,190,196,198,199],[86,87,95,100,186,187,190,198,199,200],[86,87,95,100,143,157,161,186,187,190,196,198,199,200],[86,87,95,100,132,143,157,186,187,190,196,198,199,200],[86,87,95,100,152,186,187,190,196,198,199,200],[86,87,95,100,140,143,154,157,186,187,190,196,197,198,199,200],[86,87,95,100,120,140,186,187,190,196,197,198,199,200],[86,87,95,100,150,186,187,190,196,198,199,200],[86,87,95,100,150,152,186,187,190,196,198,199,200],[86,87,95,100,120,143,154,157,186,187,190,196,198,199,200],[86,87,88,89,95,100,112,132,143,153,156,186,187,190,196,198,199,200],[86,87,95,100,157,164,186,187,190,196,198,199,200],[86,87,88,95,100,155,186,187,190,196,198,199,200],[86,87,95,100,157,178,179,186,187,190,196,198,199,200],[86,87,95,100,135,143,150,153,157,186,187,190,196,198,199,200],[86,87,95,100,150,178,186,187,190,196,198,199,200],[86,87,95,100,150,151,152,186,187,190,196,198,199,200],[86,87,95,100,157,186,187,190,196,198,199,200],[86,87,95,100,151,152,153,154,155,156,157,158,159,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,179,180,181,182,183,184,186,187,190,196,198,199,200],[86,87,95,100,157,172,186,187,190,196,198,199,200],[86,87,95,100,157,164,165,186,187,190,196,198,199,200],[86,87,95,100,155,157,165,166,186,187,190,196,198,199,200],[86,87,95,100,156,186,187,190,196,198,199,200],[86,87,88,95,100,152,157,186,187,190,196,198,199,200],[86,87,95,100,157,161,165,166,186,187,190,196,198,199,200],[86,87,95,100,161,186,187,190,196,198,199,200],[86,87,95,100,143,155,157,160,186,187,190,196,198,199,200],[86,87,88,95,100,154,157,164,186,187,190,196,198,199,200],[86,87,95,100,132,186,187,190,196,198,199,200],[86,87,95,100,148,150,152,157,178,186,187,190,196,198,199,200],[82,83,84,86,87,95,100,186,187,190,196,198,199,200],[82,83,86,87,95,100,186,187,190,196,198,199,200],[81,82,86,87,95,100,186,187,190,196,198,199,200],[79,80,86,87,95,100,186,187,190,196,198,199,200],[79,86,87,95,100,186,187,190,196,198,199,200]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"8bf8b5e44e3c9c36f98e1007e8b7018c0f38d8adc07aecef42f5200114547c70","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},"33e9318f9d575ebd4f1bd3c76f8ce76178db44b33e938c650a9fd42faaa2f1a5","a2da3ce996c63363e987e90c8b22bab6bfdfb0b95178633a25c89359010585c4","0abf4283a8bdee1d2fb2d39af4f17421aa7c9d949c96d581c049088612d8eff6",{"version":"18c94ecfc5985e00239e9b1de6b525dcc956db25adfa422b136d62c716fb9aac","signature":"bcd4916937f9cd6be278e13386969469fbfdb1e9e0cc3bb8dc8394b3b58cdb27"},{"version":"974f425907a676dbe3693bf773f6c3aa4bc9bb23b328333eef9f3db8273894c3","signature":"e96e8ee31cdba50c2adb96b81f109acd6e23d07dfd1be3aadcf0f572270d9ca2"},{"version":"fcbd12a9d11e2731949e289b173fa282588dd8f1e59caa2d004db02e269c10cc","signature":"3f3fe0b3ef6e298a7938261e91696c3c9ebb0c59d7ac478d9919dd15411d0e0d"},{"version":"0068e85aaac17e3b3bada446d2a09098a17fc4a87bbcd00ce7afeeb581716df0","signature":"13ed57f04d05e0281c5225df1fe1d2ae7060e4db5154439ef825c611cb494bd5"},{"version":"04600d4511481d8ea7293fb98d238c04e34dced959ffacb4f0c6147135ef7f7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ee31fab138939ef1903831933d524de9944511759778eedaaed56d6eb7f8697d","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"030e350db2525514580ed054f712ffb22d273e6bc7eddc1bb7eda1e0ba5d395e","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"d802f0e6b5188646d307f070d83512e8eb94651858de8a82d1e47f60fb6da4e2","affectsGlobalScope":true,"impliedFormat":1},{"version":"88d9a77d2abc23a7d26625dd6dae5b57199a8693b85c9819355651c9d9bab90f","affectsGlobalScope":true,"impliedFormat":1},{"version":"a38efe83ff77c34e0f418a806a01ca3910c02ee7d64212a59d59bca6c2c38fa1","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"3fe4022ba1e738034e38ad9afacbf0f1f16b458ed516326f5bf9e4a31e9be1dc","impliedFormat":1},{"version":"a957197054b074bcdf5555d26286e8461680c7c878040d0f4e2d5509a7524944","affectsGlobalScope":true,"impliedFormat":1},{"version":"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","impliedFormat":1},{"version":"e9b97d69510658d2f4199b7d384326b7c4053b9e6645f5c19e1c2a54ede427fc","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"f478f6f5902dc144c0d6d7bdc919c5177cac4d17a8ca8653c2daf6d7dc94317f","affectsGlobalScope":true,"impliedFormat":1},{"version":"19d5f8d3930e9f99aa2c36258bf95abbe5adf7e889e6181872d1cdba7c9a7dd5","impliedFormat":1},{"version":"b200675fd112ffef97c166d0341fb33f6e29e9f27660adde7868e95c5bc98beb","impliedFormat":1},{"version":"a6bf63d17324010ca1fbf0389cab83f93389bb0b9a01dc8a346d092f65b3605f","impliedFormat":1},{"version":"e009777bef4b023a999b2e5b9a136ff2cde37dc3f77c744a02840f05b18be8ff","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"88bc59b32d0d5b4e5d9632ac38edea23454057e643684c3c0b94511296f2998c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a0a1dda070290b92da5a50113b73ecc4dd6bcbffad66e3c86503d483eafbadcf","impliedFormat":1},{"version":"59dcad36c4549175a25998f6a8b33c1df8e18df9c12ebad1dfb25af13fd4b1ce","impliedFormat":1},{"version":"206a70e72af3e24688397b81304358526ce70d020e4c2606c4acfd1fa1e81fb2","impliedFormat":1},{"version":"3f3edb8e44e3b9df3b7ca3219ab539710b6a7f4fe16bd884d441af207e03cd57","impliedFormat":1},{"version":"528b62e4272e3ddfb50e8eed9e359dedea0a4d171c3eb8f337f4892aac37b24b","impliedFormat":1},{"version":"d71535813e39c23baa113bc4a29a0e187b87d1105ccc8c5a6ebaca38d9a9bff2","impliedFormat":1},{"version":"8cf7e92bdb2862c2d28ba4535c43dc599cfbc0025db5ed9973d9b708dcbe3d98","affectsGlobalScope":true,"impliedFormat":1},{"version":"f72bc8fe16da67e4e3268599295797b202b95e54bd215a03f97e925dd1502a36","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"1dc73f8854e5c4506131c4d95b3a6c24d0c80336d3758e95110f4c7b5cb16397","affectsGlobalScope":true,"impliedFormat":1},{"version":"636302a00dfd1f9fe6e8e91e4e9350c6518dcc8d51a474e4fc3a9ba07135100b","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"e1120271ebbc9952fdc7b2dd3e145560e52e06956345e6fdf91d70ca4886464f","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"e1ce1d622f1e561f6cdf246372ead3bbc07ce0342024d0e9c7caf3136f712698","impliedFormat":1},{"version":"c878f74b6d10b267f6075c51ac1d8becd15b4aa6a58f79c0cfe3b24908357f60","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"27e4532aaaa1665d0dd19023321e4dc12a35a741d6b8e1ca3517fcc2544e0efe","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"8c2ad42d5d1a2e8e6112625767f8794d9537f1247907378543106f7ba6c7df90","affectsGlobalScope":true,"impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"98ffdf93dfdd206516971d28e3e473f417a5cfd41172e46b4ce45008f640588e","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"7d6ff413e198d25639f9f01f16673e7df4e4bd2875a42455afd4ecc02ef156da","affectsGlobalScope":true,"impliedFormat":1},{"version":"12e8ce658dd17662d82fb0509d2057afc5e6ee30369a2e9e0957eff725b1f11d","affectsGlobalScope":true,"impliedFormat":1},{"version":"74736930d108365d7bbe740c7154706ccfb1b2a3855a897963ab3e5c07ecbf19","impliedFormat":1},{"version":"858f999b3e4a45a4e74766d43030941466460bf8768361d254234d5870480a53","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"63b05afa6121657f25e99e1519596b0826cda026f09372c9100dfe21417f4bd6","affectsGlobalScope":true,"impliedFormat":1},{"version":"3797dd6f4ea3dc15f356f8cdd3128bfa18122213b38a80d6c1f05d8e13cbdad8","impliedFormat":1},{"version":"ad90122e1cb599b3bc06a11710eb5489101be678f2920f2322b0ac3e195af78d","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"e45cc72cc9e7ad726ec83141fa4cd221d432062de34586ff107a0442ae28bf19","impliedFormat":1},{"version":"f81cd3b3cd7216733e969a51ddfaf1d768fc75901339c776b0118a80d1b9f86b","impliedFormat":1},{"version":"37be812b06e518320ba82e2aff3ac2ca37370a9df917db708f081b9043fa3315","impliedFormat":1},{"version":"3083591fd0a77addd337b02f9fcf0d4f009e41c79fa42f862d6fcf76f3fceb48","impliedFormat":1},{"version":"34810cb47e6bee7cd4bad2f174793f5926ba5889c5d180e29b02c1871a820476","affectsGlobalScope":true,"impliedFormat":1},{"version":"7115f1157a00937d712e042a011eb85e9d80b13eff78bac5f210ee852f96879d","impliedFormat":1},{"version":"0ac74c7586880e26b6a599c710b59284a284e084a2bbc82cd40fb3fbfdea71ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ce12357dadbb8efc4e4ec4dab709c8071bf992722fc9adfea2fe0bd5b50923f","impliedFormat":1},{"version":"d021d871089c519030a098fa3d32f5d95059b699b0fc6c45c85a96f92cae233c","impliedFormat":1},{"version":"c074a8cbfeb4d94915c4023dbe1eadf1215372efd3babbf982f1fed96ff8a695","impliedFormat":1},{"version":"b05b9ef20d18697e468c3ae9cecfff3f47e8976f9522d067047e3f236db06a41","affectsGlobalScope":true,"impliedFormat":1},{"version":"eec5e9a5629f6740aac21e49783a373a3767770ad559cd41285ebbb0db39a4a2","affectsGlobalScope":true,"impliedFormat":1},{"version":"1745f0b1ab53f414b4f8ebb2c6a902fda28d40f454edac8e92b4d7c974a2051c","affectsGlobalScope":true,"impliedFormat":1},{"version":"403f9ee3b18e550bccb23b0ef67ba61e4990a902f67db1afae1ad23602fef9d1","impliedFormat":1},{"version":"1a7a729938558fe198d979d3f53dece9c9112124b7b081a7fa0adcc98bf15fd8","impliedFormat":1},{"version":"067f76ab5254b1bdfc94154730b7a30c12e3aad8b9d04ec62c0d6b7a1f40ea0e","affectsGlobalScope":true,"impliedFormat":1},{"version":"f67f24b0d972d7d0f52a4e2f4f8ffd5cd786cb411044693026731918df935371","affectsGlobalScope":true,"impliedFormat":1}],"root":[[82,85]],"options":{"allowJs":false,"composite":true,"erasableSyntaxOnly":true,"jsx":4,"module":200,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","skipLibCheck":true,"strict":true,"strictNullChecks":true,"target":99,"verbatimModuleSyntax":true},"referencedMap":[[188,1],[97,2],[98,2],[99,3],[95,4],[100,5],[101,6],[102,7],[90,8],[93,9],[91,8],[92,8],[103,10],[104,11],[105,12],[106,13],[107,14],[108,15],[109,15],[111,16],[110,17],[112,18],[113,19],[114,20],[96,21],[94,8],[115,22],[116,23],[117,24],[150,25],[118,26],[119,27],[120,28],[121,29],[122,30],[123,31],[124,32],[125,33],[126,34],[127,35],[128,35],[129,36],[130,8],[131,8],[132,37],[134,38],[133,39],[135,40],[136,41],[137,42],[138,43],[139,44],[140,45],[141,46],[142,47],[143,48],[144,49],[145,50],[146,51],[147,52],[148,53],[149,54],[187,55],[201,8],[198,56],[190,57],[189,8],[186,58],[191,8],[86,59],[192,8],[202,60],[193,8],[197,61],[199,62],[87,63],[200,64],[194,8],[195,8],[196,65],[77,8],[78,8],[14,8],[13,8],[2,8],[15,8],[16,8],[17,8],[18,8],[19,8],[20,8],[21,8],[22,8],[3,8],[23,8],[24,8],[4,8],[25,8],[29,8],[26,8],[27,8],[28,8],[30,8],[31,8],[32,8],[5,8],[33,8],[34,8],[35,8],[36,8],[6,8],[40,8],[37,8],[38,8],[39,8],[41,8],[7,8],[42,8],[47,8],[48,8],[43,8],[44,8],[45,8],[46,8],[8,8],[52,8],[49,8],[50,8],[51,8],[53,8],[9,8],[54,8],[55,8],[56,8],[58,8],[57,8],[59,8],[60,8],[10,8],[61,8],[62,8],[63,8],[11,8],[64,8],[65,8],[66,8],[67,8],[68,8],[1,8],[69,8],[70,8],[12,8],[74,8],[72,8],[76,8],[71,8],[75,8],[73,8],[164,66],[174,67],[163,66],[184,68],[155,69],[154,70],[183,71],[177,72],[182,73],[157,74],[171,75],[156,76],[180,77],[152,78],[151,71],[181,79],[153,80],[158,81],[159,8],[162,81],[88,8],[185,82],[175,83],[166,84],[167,85],[169,86],[165,87],[168,88],[178,71],[160,89],[161,90],[170,91],[89,92],[173,83],[172,81],[176,8],[179,93],[79,8],[85,94],[84,95],[83,96],[82,8],[81,97],[80,98]],"latestChangedDtsFile":"./src/index.d.ts","version":"5.8.3"}
package/package.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "name": "@randsum/daggerheart",
3
+ "version": "0.1.34",
4
+ "description": "A flexible, type-safe dice roller for building Daggerheart-compatible applications",
5
+ "private": false,
6
+ "author": {
7
+ "name": "Alex Jarvis",
8
+ "url": "https://github.com/alxjrvs"
9
+ },
10
+ "license": "MIT",
11
+ "homepage": "https://github.com/RANDSUM/randsum",
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/RANDSUM/randsum.git",
15
+ "directory": "packages/daggerheart"
16
+ },
17
+ "main": "./dist/index.cjs",
18
+ "module": "./dist/index.mjs",
19
+ "types": "./dist/index.d.mts",
20
+ "source": "./src/index.ts",
21
+ "react-native": "./src/index.ts",
22
+ "files": [
23
+ "dist",
24
+ "src",
25
+ "LICENSE",
26
+ "README.md"
27
+ ],
28
+ "sideEffects": false,
29
+ "type": "module",
30
+ "dependencies": {
31
+ "@randsum/dice": "0.1.32"
32
+ },
33
+ "exports": {
34
+ ".": {
35
+ "import": {
36
+ "types": "./dist/index.d.mts",
37
+ "default": "./dist/index.mjs"
38
+ },
39
+ "require": {
40
+ "types": "./dist/index.d.cts",
41
+ "default": "./dist/index.cjs"
42
+ }
43
+ },
44
+ "./package.json": "./package.json"
45
+ },
46
+ "engines": {
47
+ "bun": ">=1.0.0"
48
+ },
49
+ "keywords": [
50
+ "dice",
51
+ "roller",
52
+ "rpg",
53
+ "random",
54
+ "typescript",
55
+ "tabletop",
56
+ "5th",
57
+ "daggerheart",
58
+ "Dungeons",
59
+ "Dragons"
60
+ ]
61
+ }
package/src/index.ts ADDED
@@ -0,0 +1,9 @@
1
+ export { meetOrBeatDH } from './meetOrBeatDH'
2
+ export { rollDH } from './rollDH'
3
+ export type {
4
+ AdvantageDisadvantageDH,
5
+ MeetOrBeatResultDH,
6
+ RollArgumentDH,
7
+ RollResultDH,
8
+ RollResultDHType
9
+ } from './types'
@@ -0,0 +1,33 @@
1
+ import { rollDH } from './rollDH'
2
+ import type { MeetOrBeatResultDH, RollArgumentDH } from './types'
3
+
4
+ export function meetOrBeatDH(
5
+ difficultyClass: number,
6
+ rollArg: RollArgumentDH
7
+ ): MeetOrBeatResultDH {
8
+ const result = rollDH(rollArg)
9
+ const core = {
10
+ ...result,
11
+ success:
12
+ result.type === 'critical hope' ? true : result.total >= difficultyClass,
13
+ target: difficultyClass
14
+ }
15
+
16
+ return {
17
+ ...core,
18
+ description: formatDescription(core)
19
+ }
20
+ }
21
+
22
+ function formatDescription({
23
+ type,
24
+ success
25
+ }: Omit<MeetOrBeatResultDH, 'description'>): string {
26
+ if (type === 'critical hope') {
27
+ return 'Critical Success (With Hope)'
28
+ }
29
+ if (success) {
30
+ return `Success with ${type}`
31
+ }
32
+ return `Failure with ${type}`
33
+ }
package/src/rollDH.ts ADDED
@@ -0,0 +1,65 @@
1
+ import { roll } from '@randsum/dice'
2
+ import type {
3
+ AdvantageDisadvantageDH,
4
+ RollArgumentDH,
5
+ RollResultDH,
6
+ RollResultDHType
7
+ } from './types'
8
+
9
+ export function rollDH({
10
+ modifier = 0,
11
+ rollingWith
12
+ }: RollArgumentDH): RollResultDH {
13
+ const arg = {
14
+ quantity: 2,
15
+ sides: 12,
16
+ modifiers: { plus: modifier }
17
+ }
18
+ const {
19
+ result: [hope, fear],
20
+ total
21
+ } = roll(arg)
22
+ if (hope === undefined || fear === undefined) {
23
+ throw new Error('Failed to roll hope and fear')
24
+ }
25
+
26
+ return {
27
+ type: calculateType(hope, fear),
28
+ total: calculateTotal(total, rollingWith),
29
+ rolls: {
30
+ hope,
31
+ fear,
32
+ modifier
33
+ }
34
+ }
35
+ }
36
+
37
+ function calculateType(hope: number, fear: number): RollResultDHType {
38
+ if (hope === fear) {
39
+ return 'critical hope'
40
+ }
41
+ if (hope > fear) {
42
+ return 'hope'
43
+ }
44
+ return 'fear'
45
+ }
46
+
47
+ function calculateTotal(
48
+ total: number,
49
+ rollingWith: AdvantageDisadvantageDH | undefined
50
+ ): number {
51
+ if (rollingWith) {
52
+ if (rollingWith === 'Advantage') {
53
+ return total + advantageDie()
54
+ }
55
+ return total - advantageDie()
56
+ }
57
+ return total
58
+ }
59
+
60
+ function advantageDie(): number {
61
+ return roll({
62
+ quantity: 1,
63
+ sides: 6
64
+ }).total
65
+ }
package/src/types.ts ADDED
@@ -0,0 +1,23 @@
1
+ export type AdvantageDisadvantageDH = 'Advantage' | 'Disadvantage'
2
+ export interface RollArgumentDH {
3
+ modifier?: number
4
+ rollingWith?: AdvantageDisadvantageDH
5
+ }
6
+
7
+ export type RollResultDHType = 'hope' | 'fear' | 'critical hope'
8
+
9
+ export interface RollResultDH {
10
+ type: RollResultDHType
11
+ total: number
12
+ rolls: {
13
+ hope: number
14
+ fear: number
15
+ modifier: number
16
+ }
17
+ }
18
+
19
+ export interface MeetOrBeatResultDH extends RollResultDH {
20
+ success: boolean
21
+ target: number
22
+ description: string
23
+ }