Grabbed dndbeyond's source code

```
~/go/bin/sourcemapper -output ddb -jsurl https://media.dndbeyond.com/character-app/static/js/main.90aa78c5.js
```
This commit is contained in:
2025-05-28 11:50:03 -07:00
commit 8df9031d27
3592 changed files with 319051 additions and 0 deletions
@@ -0,0 +1,25 @@
import React, { useMemo } from "react";
import { ActionsManager } from "@dndbeyond/character-rules-engine/es";
interface ActionsManagerContextValue {
actionsManager: ActionsManager;
}
const initContext: ActionsManagerContextValue = {
actionsManager: new ActionsManager(),
};
export const ActionsManagerContext =
React.createContext<ActionsManagerContextValue>(initContext);
export function ActionsManagerProvider({ children }) {
const actionsManager: ActionsManager = useMemo(
() => new ActionsManager(),
[]
);
return (
<ActionsManagerContext.Provider value={{ actionsManager }}>
{children}
</ActionsManagerContext.Provider>
);
}
@@ -0,0 +1,24 @@
import React, { useMemo } from "react";
import { AttributesManager } from "@dndbeyond/character-rules-engine/es";
interface AttributesManagerContextValue {
attributesManager: AttributesManager;
}
const initContext: AttributesManagerContextValue = {
attributesManager: new AttributesManager(),
};
export const AttributesManagerContext =
React.createContext<AttributesManagerContextValue>(initContext);
export function AttributesManagerProvider({ children }) {
const attributesManager: AttributesManager = useMemo(
() => new AttributesManager(),
[]
);
return (
<AttributesManagerContext.Provider value={{ attributesManager }}>
{children}
</AttributesManagerContext.Provider>
);
}
@@ -0,0 +1,26 @@
import React, { useMemo } from "react";
import { CharacterFeaturesManager } from "@dndbeyond/character-rules-engine/es";
interface CharacterFeaturesManagerContextValue {
characterFeaturesManager: CharacterFeaturesManager;
}
const initContext: CharacterFeaturesManagerContextValue = {
characterFeaturesManager: new CharacterFeaturesManager(),
};
export const CharacterFeaturesManagerContext =
React.createContext<CharacterFeaturesManagerContextValue>(initContext);
export function CharacterFeaturesManagerProvider({ children }) {
const characterFeaturesManager: CharacterFeaturesManager = useMemo(
() => new CharacterFeaturesManager(),
[]
);
return (
<CharacterFeaturesManagerContext.Provider
value={{ characterFeaturesManager }}
>
{children}
</CharacterFeaturesManagerContext.Provider>
);
}
@@ -0,0 +1,21 @@
import React, { useMemo } from "react";
import { CoinManager } from "@dndbeyond/character-rules-engine/es";
interface CoinManagerContextValue {
coinManager: CoinManager | null;
}
const initContext: CoinManagerContextValue = {
coinManager: null,
};
export const CoinManagerContext =
React.createContext<CoinManagerContextValue>(initContext);
export function CoinManagerProvider({ children }) {
const coinManager: CoinManager = useMemo(() => new CoinManager(), []);
return (
<CoinManagerContext.Provider value={{ coinManager }}>
{children}
</CoinManagerContext.Provider>
);
}
@@ -0,0 +1,21 @@
import React, { useMemo } from "react";
import { ExtrasManager } from "@dndbeyond/character-rules-engine/es";
interface ExtrasManagerContextValue {
extrasManager: ExtrasManager;
}
const initContext: ExtrasManagerContextValue = {
extrasManager: new ExtrasManager(),
};
export const ExtrasManagerContext =
React.createContext<ExtrasManagerContextValue>(initContext);
export function ExtrasManagerProvider({ children }) {
const extrasManager: ExtrasManager = useMemo(() => new ExtrasManager(), []);
return (
<ExtrasManagerContext.Provider value={{ extrasManager }}>
{children}
</ExtrasManagerContext.Provider>
);
}
@@ -0,0 +1,28 @@
import React, { useContext, useMemo } from "react";
import { InventoryManager } from "@dndbeyond/character-rules-engine/es";
interface InventoryManagerContextValue {
inventoryManager: InventoryManager;
}
const initContext: InventoryManagerContextValue = {
inventoryManager: new InventoryManager(),
};
export const InventoryManagerContext =
React.createContext<InventoryManagerContextValue>(initContext);
export function InventoryManagerProvider({ children }) {
const inventoryManager: InventoryManager = useMemo(
() => new InventoryManager(),
[]
);
return (
<InventoryManagerContext.Provider value={{ inventoryManager }}>
{children}
</InventoryManagerContext.Provider>
);
}
export const useInventoryManager = () => {
return useContext(InventoryManagerContext);
};
@@ -0,0 +1,26 @@
import React, { useMemo } from "react";
import {
getSpellsManager,
SpellsManager,
} from "@dndbeyond/character-rules-engine/es";
interface SpellsManagerContextValue {
spellsManager: SpellsManager;
}
const initContext: SpellsManagerContextValue = {
spellsManager: null!,
};
export const SpellsManagerContext =
React.createContext<SpellsManagerContextValue>(initContext);
export function SpellsManagerProvider({ children }) {
// TODO: try getting the initialized sub and cleaning it up in here?
const spellsManager: SpellsManager = useMemo(() => getSpellsManager(), []);
return (
<SpellsManagerContext.Provider value={{ spellsManager }}>
{children}
</SpellsManagerContext.Provider>
);
}
@@ -0,0 +1,25 @@
import { ActionsManagerProvider } from "./ActionsManagerContext";
import { AttributesManagerProvider } from "./AttributesManagerContext";
import { CharacterFeaturesManagerProvider } from "./CharacterFeaturesManagerContext";
import { CoinManagerProvider } from "./CoinManagerContext";
import { ExtrasManagerProvider } from "./ExtrasManagerContext";
import { InventoryManagerProvider } from "./InventoryManagerContext";
import { SpellsManagerProvider } from "./SpellsManagerContext";
export function Managers(props) {
return (
<ActionsManagerProvider>
<AttributesManagerProvider>
<ExtrasManagerProvider>
<SpellsManagerProvider>
<CharacterFeaturesManagerProvider>
<InventoryManagerProvider>
<CoinManagerProvider>{props.children}</CoinManagerProvider>
</InventoryManagerProvider>
</CharacterFeaturesManagerProvider>
</SpellsManagerProvider>
</ExtrasManagerProvider>
</AttributesManagerProvider>
</ActionsManagerProvider>
);
}