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,199 @@
/**
*
* @param option
*/
export function getId(option) {
return getDefinitionId(option);
}
/**
*
* @param option
*/
export function getDefinitionId(option) {
var _a, _b;
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : -1;
}
/**
*
* @param option
*/
export function getEntityTypeId(option) {
return getDefinitionEntityTypeId(option);
}
/**
*
* @param option
*/
export function getDefinitionEntityTypeId(option) {
var _a, _b;
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.entityTypeId) !== null && _b !== void 0 ? _b : -1;
}
/**
*
* @param option
*/
export function getUniqueKey(option) {
return `${getId(option)}-${getEntityTypeId(option)}`;
}
/**
*
* @param option
*/
export function getActivation(option) {
return getDefinitionActivation(option);
}
/**
*
* @param option
*/
export function getDefinitionActivation(option) {
var _a, _b;
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.activation) !== null && _b !== void 0 ? _b : null;
}
/**
*
* @param option
*/
export function getName(option) {
return getDefinitionName(option);
}
/**
*
* @param option
*/
export function getDefinitionName(option) {
var _a, _b;
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '';
}
/**
*
* @param option
*/
export function getSourceId(option) {
return getDefinitionSourceId(option);
}
/**
*
* @param option
*/
export function getDefinitionSourceId(option) {
var _a, _b;
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.sourceId) !== null && _b !== void 0 ? _b : null;
}
/**
*
* @param option
*/
export function getSourcePage(option) {
return getDefinitionSourcePage(option);
}
/**
*
* @param option
*/
export function getDefinitionSourcePage(option) {
var _a, _b;
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.sourcePageNumber) !== null && _b !== void 0 ? _b : null;
}
/**
*
* @param option
*/
export function getSnippet(option) {
return getDefinitionSnippet(option);
}
/**
*
* @param option
*/
export function getDefinitionSnippet(option) {
var _a, _b;
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.snippet) !== null && _b !== void 0 ? _b : null;
}
/**
*
* @param option
*/
export function getDescription(option) {
return getDefinitionDescription(option);
}
/**
*
* @param option
*/
export function getDefinitionDescription(option) {
var _a, _b;
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.description) !== null && _b !== void 0 ? _b : null;
}
/**
*
* @param option
*/
export function getCreatureRules(option) {
return getDefinitionCreatureRules(option);
}
/**
*
* @param option
*/
export function getDefinitionCreatureRules(option) {
var _a, _b;
return (_b = (_a = option.definition) === null || _a === void 0 ? void 0 : _a.creatureRules) !== null && _b !== void 0 ? _b : [];
}
/**
*
* @param option
*/
export function getComponentId(option) {
return option.componentId;
}
/**
*
* @param option
*/
export function getComponentTypeId(option) {
return option.componentTypeId;
}
/**
*
* @param option
*/
export function getDataOrigin(option) {
return option.dataOrigin;
}
/**
*
* @param option
*/
export function getDataOriginType(option) {
const dataOrigin = getDataOrigin(option);
return dataOrigin.type;
}
/**
*
* @param option
*/
export function getActions(option) {
return option.actions;
}
/**
*
* @param option
*/
export function getFeats(option) {
return option.feats;
}
/**
*
* @param option
*/
export function getSpells(option) {
return option.spells;
}
/**
*
* @param option
*/
export function getModifiers(option) {
return option.modifiers;
}
@@ -0,0 +1,60 @@
import { groupBy } from 'lodash';
import { ActionGenerators } from '../Action';
import { DataOriginGenerators } from '../DataOrigin';
import { FeatGenerators } from '../Feat';
import { HelperUtils } from '../Helper';
import { ModifierGenerators } from '../Modifier';
import { SpellGenerators } from '../Spell';
import { getComponentId, getComponentTypeId, getId, getEntityTypeId } from './accessors';
/**
*
* @param option
*/
export function generateDataOriginKey(option) {
return DataOriginGenerators.generateDataOriginKey(getComponentId(option), getComponentTypeId(option));
}
/**
*
* @param options
*/
export function generateOptionComponentLookup(options) {
return groupBy(options, (option) => generateDataOriginKey(option));
}
/**
*
* @param id
* @param entityTypeId
* @param optionLookup
* @param dataOriginType
* @param primary
* @param parent
*/
export function generateDataOriginBaseOptions(id, entityTypeId, optionLookup, dataOriginType, primary, parent = null) {
const options = HelperUtils.lookupDataOrFallback(optionLookup, DataOriginGenerators.generateDataOriginKey(id, entityTypeId));
if (!options) {
return [];
}
return options.map((option) => (Object.assign(Object.assign({}, option), { dataOrigin: DataOriginGenerators.generateDataOrigin(dataOriginType, primary, parent) })));
}
/**
*
* @param baseOptions
* @param dataOriginType
* @param featLookup
* @param actionLookup
* @param spellLookup
* @param optionLookup
* @param modifierLookup
* @param valueLookup
* @param spellListDataOriginLookup
* @param ruleData
* @param primary
* @param parent
*/
export function generateOptions(baseOptions, dataOriginType, featLookup, actionLookup, spellLookup, optionLookup, modifierLookup, valueLookup, spellListDataOriginLookup, ruleData, primary, parent = null) {
return baseOptions.map((option) => {
const id = getId(option);
const entityTypeId = getEntityTypeId(option);
return Object.assign(Object.assign({}, option), { feats: FeatGenerators.generateDataOriginFeats(id, entityTypeId, featLookup, dataOriginType, primary, parent), actions: ActionGenerators.generateBaseActions(id, entityTypeId, actionLookup, valueLookup, dataOriginType, primary, parent), spells: SpellGenerators.generateBaseSpells(id, entityTypeId, spellLookup, dataOriginType, primary, parent, ruleData, spellListDataOriginLookup, valueLookup), modifiers: ModifierGenerators.generateModifiers(id, entityTypeId, modifierLookup, dataOriginType, primary, parent) });
});
}
@@ -0,0 +1,7 @@
import * as OptionAccessors from './accessors';
import * as OptionGenerators from './generators';
import * as OptionTypings from './typings';
import * as OptionUtils from './utils';
export * from './typings';
export { OptionAccessors, OptionGenerators, OptionUtils };
export default Object.assign(Object.assign(Object.assign(Object.assign({}, OptionAccessors), OptionGenerators), OptionTypings), OptionUtils);
@@ -0,0 +1,29 @@
import { ClassAccessors } from '../Class';
import { ClassFeatureAccessors } from '../ClassFeature';
import { DataOriginTypeEnum } from '../DataOrigin';
import { getDataOrigin, getDataOriginType } from './accessors';
export function getContextData(option) {
const dataOrigin = getDataOrigin(option);
const dataOriginType = getDataOriginType(option);
let classLevel;
switch (dataOriginType) {
case DataOriginTypeEnum.CLASS_FEATURE:
classLevel = ClassAccessors.getLevel(dataOrigin.parent);
break;
default:
// not implemented
}
return {
classLevel,
};
}
export function getLevelScale(option) {
const dataOrigin = getDataOrigin(option);
const dataOriginType = getDataOriginType(option);
switch (dataOriginType) {
case DataOriginTypeEnum.CLASS_FEATURE:
return ClassFeatureAccessors.getLevelScale(dataOrigin.primary);
default:
return null;
}
}