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,42 @@
/**
*
* @param feature
*/
export function getClassFeatureId(feature) {
return feature.classFeatureId;
}
/**
*
* @param feature
*/
export function getAffectedClassFeatureId(feature) {
return feature.affectedClassFeatureId;
}
/**
*
* @param feature
*/
export function getDefinitionKey(feature) {
return feature.classFeatureDefinitionKey;
}
/**
*
* @param feature
*/
export function getAffectedClassFeatureDefinitionKey(feature) {
return feature.affectedClassFeatureDefinitionKey;
}
/**
*
* @param feature
*/
export function getClassFeature(feature) {
return feature.classFeature;
}
/**
*
* @param feature
*/
export function getAccessType(feature) {
return feature.accessType;
}
@@ -0,0 +1,9 @@
import { DefinitionHacks, DefinitionTypeEnum } from '../Definition';
/**
* use hack until ids are strings
*
* @param id
*/
export function deriveDefinitionKey(id) {
return DefinitionHacks.hack__generateDefinitionKey(DefinitionTypeEnum.CLASS_FEATURE, id);
}
@@ -0,0 +1,24 @@
import { TypeScriptUtils } from '../../utils';
import { ClassFeatureSimulators } from '../ClassFeature';
import { DefinitionPoolUtils } from '../DefinitionPool';
import { HelperUtils } from '../Helper';
import { getDefinitionKey } from './accessors';
export function generateOptionalClassFeatures(optionalClassFeatureMappings, definitionPool, classes, choiceComponents, baseFeats) {
return optionalClassFeatureMappings
.map((mapping) => generateOptionalClassFeature(mapping, definitionPool, classes, choiceComponents, baseFeats))
.filter(TypeScriptUtils.isNotNullOrUndefined);
}
export function generateOptionalClassFeature(optionalClassFeatureMapping, definitionPool, classes, choiceComponents, baseFeats) {
const definitionKey = getDefinitionKey(optionalClassFeatureMapping);
if (definitionKey === null) {
return null;
}
return Object.assign(Object.assign({}, optionalClassFeatureMapping), { classFeature: ClassFeatureSimulators.simulateClassFeature(definitionKey, definitionPool, classes, choiceComponents, baseFeats), accessType: DefinitionPoolUtils.getDefinitionAccessType(definitionKey, definitionPool) });
}
/**
*
* @param optionalClassFeatures
*/
export function generateOptionalClassFeatureLookup(optionalClassFeatures) {
return HelperUtils.generateNonNullLookup(optionalClassFeatures, getDefinitionKey);
}
@@ -0,0 +1,9 @@
import * as OptionalClassFeatureAccessors from './accessors';
import * as OptionalClassFeatureDerivers from './derivers';
import * as OptionalClassFeatureGenerators from './generators';
import * as OptionalClassFeatureSimulators from './simulators';
import * as OptionalClassFeatureTypings from './typings';
import * as OptionalClassFeatureUtils from './utils';
export * from './typings';
export { OptionalClassFeatureAccessors, OptionalClassFeatureDerivers, OptionalClassFeatureGenerators, OptionalClassFeatureSimulators, OptionalClassFeatureUtils, };
export default Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, OptionalClassFeatureAccessors), OptionalClassFeatureDerivers), OptionalClassFeatureGenerators), OptionalClassFeatureTypings), OptionalClassFeatureSimulators), OptionalClassFeatureUtils);
@@ -0,0 +1,14 @@
import { deriveDefinitionKey } from './derivers';
/**
*
* @param classFeatureId
* @param affectedClassFeatureId
*/
export function simulateOptionalClassFeatureContract(classFeatureId, affectedClassFeatureId) {
return {
affectedClassFeatureId,
affectedClassFeatureDefinitionKey: affectedClassFeatureId ? deriveDefinitionKey(affectedClassFeatureId) : null,
classFeatureDefinitionKey: classFeatureId ? deriveDefinitionKey(classFeatureId) : null,
classFeatureId,
};
}
@@ -0,0 +1,39 @@
import { ClassFeatureAccessors } from '../ClassFeature';
import { FeatureTypeEnum } from '../Core';
import { getAffectedClassFeatureId, getClassFeature } from './accessors';
/**
*
* @param optionalClassFeature
*/
export function getOptionalClassFeatureSpellListIds(optionalClassFeature) {
const spellListIds = [];
const classFeature = getClassFeature(optionalClassFeature);
if (classFeature) {
spellListIds.push(...ClassFeatureAccessors.getSpellListIds(classFeature));
}
return spellListIds;
}
/**
*
* @param optionalClassFeature
* @param data
*/
export function getUpdateMappingSpellListIdsToRemove(optionalClassFeature, data) {
const spellListIds = [];
const existingAffectedClassFeatureId = getAffectedClassFeatureId(optionalClassFeature);
const classFeature = getClassFeature(optionalClassFeature);
if (classFeature &&
ClassFeatureAccessors.getFeatureType(classFeature) === FeatureTypeEnum.REPLACEMENT &&
existingAffectedClassFeatureId !== null &&
data.affectedClassFeatureId === null) {
spellListIds.push(...getOptionalClassFeatureSpellListIds(optionalClassFeature));
}
return spellListIds;
}
/**
*
* @param optionalClassFeature
*/
export function getRemoveMappingSpellListIds(optionalClassFeature) {
return getOptionalClassFeatureSpellListIds(optionalClassFeature);
}