@axiapps/bridge-metrics 0.1.0
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/dist/aggregationTypes.cjs +18 -0
- package/dist/aggregationTypes.d.cts +21 -0
- package/dist/aggregationTypes.d.ts +21 -0
- package/dist/aggregationTypes.js +1 -0
- package/dist/boonGeneration.cjs +308 -0
- package/dist/boonGeneration.d.cts +65 -0
- package/dist/boonGeneration.d.ts +65 -0
- package/dist/boonGeneration.js +16 -0
- package/dist/chunk-42DVJJLC.js +106 -0
- package/dist/chunk-4F55Q6K2.js +0 -0
- package/dist/chunk-ELKDB763.js +349 -0
- package/dist/chunk-FU74LJEM.js +77 -0
- package/dist/chunk-J3YCFY3C.js +37 -0
- package/dist/chunk-JP2ZL44R.js +18 -0
- package/dist/chunk-K2SRAMGC.js +0 -0
- package/dist/chunk-KRHODGVU.js +48 -0
- package/dist/chunk-LIGIXSSA.js +1383 -0
- package/dist/chunk-M2WR3JBQ.js +0 -0
- package/dist/chunk-PMVLNDZZ.js +279 -0
- package/dist/chunk-R5EJF5AW.js +147 -0
- package/dist/chunk-RGXSI3AI.js +298 -0
- package/dist/chunk-UFJJ6WLD.js +197 -0
- package/dist/chunk-WW5XFXGC.js +234 -0
- package/dist/chunk-ZFZS7JFU.js +10 -0
- package/dist/combatMetrics.cjs +251 -0
- package/dist/combatMetrics.d.cts +26 -0
- package/dist/combatMetrics.d.ts +26 -0
- package/dist/combatMetrics.js +21 -0
- package/dist/computePlayerAggregation.cjs +2042 -0
- package/dist/computePlayerAggregation.d.cts +249 -0
- package/dist/computePlayerAggregation.d.ts +249 -0
- package/dist/computePlayerAggregation.js +30 -0
- package/dist/conditionsMetrics.cjs +328 -0
- package/dist/conditionsMetrics.d.cts +67 -0
- package/dist/conditionsMetrics.d.ts +67 -0
- package/dist/conditionsMetrics.js +18 -0
- package/dist/constants.cjs +36 -0
- package/dist/constants.d.cts +18 -0
- package/dist/constants.d.ts +18 -0
- package/dist/constants.js +10 -0
- package/dist/dashboardMetrics.cjs +226 -0
- package/dist/dashboardMetrics.d.cts +29 -0
- package/dist/dashboardMetrics.d.ts +29 -0
- package/dist/dashboardMetrics.js +42 -0
- package/dist/dpsReportTypes.cjs +18 -0
- package/dist/dpsReportTypes.d.cts +294 -0
- package/dist/dpsReportTypes.d.ts +294 -0
- package/dist/dpsReportTypes.js +1 -0
- package/dist/index.cjs +2902 -0
- package/dist/index.d.cts +13 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +152 -0
- package/dist/metrics-methods.json +38 -0
- package/dist/metricsSettings.cjs +75 -0
- package/dist/metricsSettings.d.cts +23 -0
- package/dist/metricsSettings.d.ts +23 -0
- package/dist/metricsSettings.js +8 -0
- package/dist/professionUtils.cjs +265 -0
- package/dist/professionUtils.d.cts +10 -0
- package/dist/professionUtils.d.ts +10 -0
- package/dist/professionUtils.js +20 -0
- package/dist/reportMetrics.cjs +224 -0
- package/dist/reportMetrics.d.cts +85 -0
- package/dist/reportMetrics.d.ts +85 -0
- package/dist/reportMetrics.js +12 -0
- package/dist/resUtility.cjs +52 -0
- package/dist/resUtility.d.cts +5 -0
- package/dist/resUtility.d.ts +5 -0
- package/dist/resUtility.js +8 -0
- package/dist/roles.cjs +18 -0
- package/dist/roles.d.cts +17 -0
- package/dist/roles.d.ts +17 -0
- package/dist/roles.js +1 -0
- package/dist/rollup.cjs +378 -0
- package/dist/rollup.d.cts +103 -0
- package/dist/rollup.d.ts +103 -0
- package/dist/rollup.js +16 -0
- package/dist/statsMetrics.cjs +153 -0
- package/dist/statsMetrics.d.cts +39 -0
- package/dist/statsMetrics.d.ts +39 -0
- package/dist/statsMetrics.js +22 -0
- package/dist/timestampUtils.cjs +63 -0
- package/dist/timestampUtils.d.cts +12 -0
- package/dist/timestampUtils.d.ts +12 -0
- package/dist/timestampUtils.js +9 -0
- package/package.json +44 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { BuffGeneration, BuffUptimes, BuffUptimesEntry, DPSReportJSON, DamageModifierData, DamageModifierInfo, Defenses, Player, SquadBuffVolume, StatsAll, StatsTarget, Support, Target, TotalDamageDist, TotalDamageTaken } from './dpsReportTypes.cjs';
|
|
2
|
+
export { DEFAULT_DISRUPTION_METHOD, DisruptionMethod, METRICS_SPEC, MetricsMethodSpec, MetricsSpec } from './metricsSettings.cjs';
|
|
3
|
+
export { getPlayerBlocked, getPlayerBreakbarDamage, getPlayerCleanses, getPlayerDamage, getPlayerDamageTaken, getPlayerDashboardTotals, getPlayerDeaths, getPlayerDistanceToTag, getPlayerDodges, getPlayerDownsTaken, getPlayerDps, getPlayerEvaded, getPlayerMissed, getPlayerOutgoingInterrupts, getPlayerResurrects, getPlayerStrips, getTargetStatTotal } from './dashboardMetrics.cjs';
|
|
4
|
+
export { applySquadStabilityGeneration, computeDownContribution, computeIncomingDisruptions, computeOutgoingCrowdControl, computeSquadBarrier, computeSquadHealing, resolveDisruptionValue } from './combatMetrics.cjs';
|
|
5
|
+
export { ConditionSkillEntry, NON_DAMAGING_CONDITIONS, OutgoingConditionSummaryEntry, OutgoingConditionsResult, PlayerConditionTotals, buildConditionIconMap, computeOutgoingConditions, getDefaultConditionIcon, normalizeConditionLabel, resolveBuffMetaById, resolveConditionNameFromEntry } from './conditionsMetrics.cjs';
|
|
6
|
+
export { PROFESSION_COLORS, getProfessionAbbrev, getProfessionAbbrevSuperscript, getProfessionBase, getProfessionColor, getProfessionEmoji, hexToRgba, toSuperscript } from './professionUtils.cjs';
|
|
7
|
+
export { DamageMitigationMinionRow, DamageMitigationRow, DamageMitigationTotals, PlayerAggregationAccumulators, PlayerAggregationOptions, PlayerStats, SpecialBuffAggEntry, computePlayerAggregation, createPlayerAggregationAccumulators, finalizePlayerAggregation, getFightDownsDeaths, getFightOutcome, ingestLogPlayerData, precomputeGlobalEnemySkillStats, resolveProfessionLabel } from './computePlayerAggregation.cjs';
|
|
8
|
+
export { ROLLUP_SOURCES_VERSION, RollupCommanderRow, RollupData, RollupPlayerRow, RollupProfessionUsage, RollupReportPayload, RollupSourcesFile, buildRollupData, extractRollupSource, parseRollupSourcesFile, removeRollupSources, updateRollupSourcesForPublish } from './rollup.cjs';
|
|
9
|
+
export { PlayerHealingSkillEntry, PlayerSkillDamageEntry } from './aggregationTypes.cjs';
|
|
10
|
+
export { PlayerRoleClassification, RoleClassificationFactor } from './roles.cjs';
|
|
11
|
+
export { isResUtilitySkill } from './resUtility.cjs';
|
|
12
|
+
export { parseTimestamp as parseFightTimestamp, resolveFightTimestamp } from './timestampUtils.cjs';
|
|
13
|
+
export { PlayerAggregate, ReportSchemaError, RunPlayerSummary, RunSetComparison, RunSummary, aggregatePlayers, compareRunSets, extractRunSummary } from './reportMetrics.cjs';
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { BuffGeneration, BuffUptimes, BuffUptimesEntry, DPSReportJSON, DamageModifierData, DamageModifierInfo, Defenses, Player, SquadBuffVolume, StatsAll, StatsTarget, Support, Target, TotalDamageDist, TotalDamageTaken } from './dpsReportTypes.js';
|
|
2
|
+
export { DEFAULT_DISRUPTION_METHOD, DisruptionMethod, METRICS_SPEC, MetricsMethodSpec, MetricsSpec } from './metricsSettings.js';
|
|
3
|
+
export { getPlayerBlocked, getPlayerBreakbarDamage, getPlayerCleanses, getPlayerDamage, getPlayerDamageTaken, getPlayerDashboardTotals, getPlayerDeaths, getPlayerDistanceToTag, getPlayerDodges, getPlayerDownsTaken, getPlayerDps, getPlayerEvaded, getPlayerMissed, getPlayerOutgoingInterrupts, getPlayerResurrects, getPlayerStrips, getTargetStatTotal } from './dashboardMetrics.js';
|
|
4
|
+
export { applySquadStabilityGeneration, computeDownContribution, computeIncomingDisruptions, computeOutgoingCrowdControl, computeSquadBarrier, computeSquadHealing, resolveDisruptionValue } from './combatMetrics.js';
|
|
5
|
+
export { ConditionSkillEntry, NON_DAMAGING_CONDITIONS, OutgoingConditionSummaryEntry, OutgoingConditionsResult, PlayerConditionTotals, buildConditionIconMap, computeOutgoingConditions, getDefaultConditionIcon, normalizeConditionLabel, resolveBuffMetaById, resolveConditionNameFromEntry } from './conditionsMetrics.js';
|
|
6
|
+
export { PROFESSION_COLORS, getProfessionAbbrev, getProfessionAbbrevSuperscript, getProfessionBase, getProfessionColor, getProfessionEmoji, hexToRgba, toSuperscript } from './professionUtils.js';
|
|
7
|
+
export { DamageMitigationMinionRow, DamageMitigationRow, DamageMitigationTotals, PlayerAggregationAccumulators, PlayerAggregationOptions, PlayerStats, SpecialBuffAggEntry, computePlayerAggregation, createPlayerAggregationAccumulators, finalizePlayerAggregation, getFightDownsDeaths, getFightOutcome, ingestLogPlayerData, precomputeGlobalEnemySkillStats, resolveProfessionLabel } from './computePlayerAggregation.js';
|
|
8
|
+
export { ROLLUP_SOURCES_VERSION, RollupCommanderRow, RollupData, RollupPlayerRow, RollupProfessionUsage, RollupReportPayload, RollupSourcesFile, buildRollupData, extractRollupSource, parseRollupSourcesFile, removeRollupSources, updateRollupSourcesForPublish } from './rollup.js';
|
|
9
|
+
export { PlayerHealingSkillEntry, PlayerSkillDamageEntry } from './aggregationTypes.js';
|
|
10
|
+
export { PlayerRoleClassification, RoleClassificationFactor } from './roles.js';
|
|
11
|
+
export { isResUtilitySkill } from './resUtility.js';
|
|
12
|
+
export { parseTimestamp as parseFightTimestamp, resolveFightTimestamp } from './timestampUtils.js';
|
|
13
|
+
export { PlayerAggregate, ReportSchemaError, RunPlayerSummary, RunSetComparison, RunSummary, aggregatePlayers, compareRunSets, extractRunSummary } from './reportMetrics.js';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ROLLUP_SOURCES_VERSION,
|
|
3
|
+
buildRollupData,
|
|
4
|
+
extractRollupSource,
|
|
5
|
+
parseRollupSourcesFile,
|
|
6
|
+
removeRollupSources,
|
|
7
|
+
updateRollupSourcesForPublish
|
|
8
|
+
} from "./chunk-ELKDB763.js";
|
|
9
|
+
import "./chunk-M2WR3JBQ.js";
|
|
10
|
+
import "./chunk-4F55Q6K2.js";
|
|
11
|
+
import {
|
|
12
|
+
ReportSchemaError,
|
|
13
|
+
aggregatePlayers,
|
|
14
|
+
compareRunSets,
|
|
15
|
+
extractRunSummary
|
|
16
|
+
} from "./chunk-UFJJ6WLD.js";
|
|
17
|
+
import "./chunk-K2SRAMGC.js";
|
|
18
|
+
import {
|
|
19
|
+
computePlayerAggregation,
|
|
20
|
+
createPlayerAggregationAccumulators,
|
|
21
|
+
finalizePlayerAggregation,
|
|
22
|
+
getFightDownsDeaths,
|
|
23
|
+
getFightOutcome,
|
|
24
|
+
ingestLogPlayerData,
|
|
25
|
+
precomputeGlobalEnemySkillStats,
|
|
26
|
+
resolveProfessionLabel
|
|
27
|
+
} from "./chunk-LIGIXSSA.js";
|
|
28
|
+
import {
|
|
29
|
+
isResUtilitySkill
|
|
30
|
+
} from "./chunk-JP2ZL44R.js";
|
|
31
|
+
import {
|
|
32
|
+
parseTimestamp,
|
|
33
|
+
resolveFightTimestamp
|
|
34
|
+
} from "./chunk-J3YCFY3C.js";
|
|
35
|
+
import "./chunk-42DVJJLC.js";
|
|
36
|
+
import {
|
|
37
|
+
getPlayerBlocked,
|
|
38
|
+
getPlayerBreakbarDamage,
|
|
39
|
+
getPlayerCleanses,
|
|
40
|
+
getPlayerDamage,
|
|
41
|
+
getPlayerDamageTaken,
|
|
42
|
+
getPlayerDashboardTotals,
|
|
43
|
+
getPlayerDeaths,
|
|
44
|
+
getPlayerDistanceToTag,
|
|
45
|
+
getPlayerDodges,
|
|
46
|
+
getPlayerDownsTaken,
|
|
47
|
+
getPlayerDps,
|
|
48
|
+
getPlayerEvaded,
|
|
49
|
+
getPlayerMissed,
|
|
50
|
+
getPlayerOutgoingInterrupts,
|
|
51
|
+
getPlayerResurrects,
|
|
52
|
+
getPlayerStrips,
|
|
53
|
+
getTargetStatTotal
|
|
54
|
+
} from "./chunk-FU74LJEM.js";
|
|
55
|
+
import {
|
|
56
|
+
applySquadStabilityGeneration,
|
|
57
|
+
computeDownContribution,
|
|
58
|
+
computeIncomingDisruptions,
|
|
59
|
+
computeOutgoingCrowdControl,
|
|
60
|
+
computeSquadBarrier,
|
|
61
|
+
computeSquadHealing,
|
|
62
|
+
resolveDisruptionValue
|
|
63
|
+
} from "./chunk-R5EJF5AW.js";
|
|
64
|
+
import "./chunk-ZFZS7JFU.js";
|
|
65
|
+
import "./chunk-PMVLNDZZ.js";
|
|
66
|
+
import {
|
|
67
|
+
DEFAULT_DISRUPTION_METHOD,
|
|
68
|
+
METRICS_SPEC
|
|
69
|
+
} from "./chunk-KRHODGVU.js";
|
|
70
|
+
import {
|
|
71
|
+
NON_DAMAGING_CONDITIONS,
|
|
72
|
+
buildConditionIconMap,
|
|
73
|
+
computeOutgoingConditions,
|
|
74
|
+
getDefaultConditionIcon,
|
|
75
|
+
normalizeConditionLabel,
|
|
76
|
+
resolveBuffMetaById,
|
|
77
|
+
resolveConditionNameFromEntry
|
|
78
|
+
} from "./chunk-RGXSI3AI.js";
|
|
79
|
+
import {
|
|
80
|
+
PROFESSION_COLORS,
|
|
81
|
+
getProfessionAbbrev,
|
|
82
|
+
getProfessionAbbrevSuperscript,
|
|
83
|
+
getProfessionBase,
|
|
84
|
+
getProfessionColor,
|
|
85
|
+
getProfessionEmoji,
|
|
86
|
+
hexToRgba,
|
|
87
|
+
toSuperscript
|
|
88
|
+
} from "./chunk-WW5XFXGC.js";
|
|
89
|
+
export {
|
|
90
|
+
DEFAULT_DISRUPTION_METHOD,
|
|
91
|
+
METRICS_SPEC,
|
|
92
|
+
NON_DAMAGING_CONDITIONS,
|
|
93
|
+
PROFESSION_COLORS,
|
|
94
|
+
ROLLUP_SOURCES_VERSION,
|
|
95
|
+
ReportSchemaError,
|
|
96
|
+
aggregatePlayers,
|
|
97
|
+
applySquadStabilityGeneration,
|
|
98
|
+
buildConditionIconMap,
|
|
99
|
+
buildRollupData,
|
|
100
|
+
compareRunSets,
|
|
101
|
+
computeDownContribution,
|
|
102
|
+
computeIncomingDisruptions,
|
|
103
|
+
computeOutgoingConditions,
|
|
104
|
+
computeOutgoingCrowdControl,
|
|
105
|
+
computePlayerAggregation,
|
|
106
|
+
computeSquadBarrier,
|
|
107
|
+
computeSquadHealing,
|
|
108
|
+
createPlayerAggregationAccumulators,
|
|
109
|
+
extractRollupSource,
|
|
110
|
+
extractRunSummary,
|
|
111
|
+
finalizePlayerAggregation,
|
|
112
|
+
getDefaultConditionIcon,
|
|
113
|
+
getFightDownsDeaths,
|
|
114
|
+
getFightOutcome,
|
|
115
|
+
getPlayerBlocked,
|
|
116
|
+
getPlayerBreakbarDamage,
|
|
117
|
+
getPlayerCleanses,
|
|
118
|
+
getPlayerDamage,
|
|
119
|
+
getPlayerDamageTaken,
|
|
120
|
+
getPlayerDashboardTotals,
|
|
121
|
+
getPlayerDeaths,
|
|
122
|
+
getPlayerDistanceToTag,
|
|
123
|
+
getPlayerDodges,
|
|
124
|
+
getPlayerDownsTaken,
|
|
125
|
+
getPlayerDps,
|
|
126
|
+
getPlayerEvaded,
|
|
127
|
+
getPlayerMissed,
|
|
128
|
+
getPlayerOutgoingInterrupts,
|
|
129
|
+
getPlayerResurrects,
|
|
130
|
+
getPlayerStrips,
|
|
131
|
+
getProfessionAbbrev,
|
|
132
|
+
getProfessionAbbrevSuperscript,
|
|
133
|
+
getProfessionBase,
|
|
134
|
+
getProfessionColor,
|
|
135
|
+
getProfessionEmoji,
|
|
136
|
+
getTargetStatTotal,
|
|
137
|
+
hexToRgba,
|
|
138
|
+
ingestLogPlayerData,
|
|
139
|
+
isResUtilitySkill,
|
|
140
|
+
normalizeConditionLabel,
|
|
141
|
+
parseTimestamp as parseFightTimestamp,
|
|
142
|
+
parseRollupSourcesFile,
|
|
143
|
+
precomputeGlobalEnemySkillStats,
|
|
144
|
+
removeRollupSources,
|
|
145
|
+
resolveBuffMetaById,
|
|
146
|
+
resolveConditionNameFromEntry,
|
|
147
|
+
resolveDisruptionValue,
|
|
148
|
+
resolveFightTimestamp,
|
|
149
|
+
resolveProfessionLabel,
|
|
150
|
+
toSuperscript,
|
|
151
|
+
updateRollupSourcesForPublish
|
|
152
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": "v5",
|
|
3
|
+
"methods": {
|
|
4
|
+
"count": {
|
|
5
|
+
"label": "Count Events",
|
|
6
|
+
"summary": "Counts each CC/strip event once.",
|
|
7
|
+
"implications": [
|
|
8
|
+
"Simple and stable across EI versions.",
|
|
9
|
+
"Multi-hit skills can inflate totals."
|
|
10
|
+
]
|
|
11
|
+
},
|
|
12
|
+
"duration": {
|
|
13
|
+
"label": "Duration (Seconds)",
|
|
14
|
+
"summary": "Uses total CC/strip duration in seconds.",
|
|
15
|
+
"implications": [
|
|
16
|
+
"Reflects control impact more directly.",
|
|
17
|
+
"Totals represent time, not event count."
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"tiered": {
|
|
21
|
+
"label": "Tiered Impact",
|
|
22
|
+
"summary": "Weights events based on average duration tiers.",
|
|
23
|
+
"implications": [
|
|
24
|
+
"Balances short vs long CC/strip effects.",
|
|
25
|
+
"Uses averaged durations per player."
|
|
26
|
+
],
|
|
27
|
+
"tiers": {
|
|
28
|
+
"shortMs": 500,
|
|
29
|
+
"mediumMs": 1500,
|
|
30
|
+
"weights": {
|
|
31
|
+
"short": 0.5,
|
|
32
|
+
"medium": 1,
|
|
33
|
+
"long": 2
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/metricsSettings.ts
|
|
21
|
+
var metricsSettings_exports = {};
|
|
22
|
+
__export(metricsSettings_exports, {
|
|
23
|
+
DEFAULT_DISRUPTION_METHOD: () => DEFAULT_DISRUPTION_METHOD,
|
|
24
|
+
METRICS_SPEC: () => METRICS_SPEC
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(metricsSettings_exports);
|
|
27
|
+
|
|
28
|
+
// src/metrics-methods.json
|
|
29
|
+
var metrics_methods_default = {
|
|
30
|
+
specVersion: "v5",
|
|
31
|
+
methods: {
|
|
32
|
+
count: {
|
|
33
|
+
label: "Count Events",
|
|
34
|
+
summary: "Counts each CC/strip event once.",
|
|
35
|
+
implications: [
|
|
36
|
+
"Simple and stable across EI versions.",
|
|
37
|
+
"Multi-hit skills can inflate totals."
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
duration: {
|
|
41
|
+
label: "Duration (Seconds)",
|
|
42
|
+
summary: "Uses total CC/strip duration in seconds.",
|
|
43
|
+
implications: [
|
|
44
|
+
"Reflects control impact more directly.",
|
|
45
|
+
"Totals represent time, not event count."
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
tiered: {
|
|
49
|
+
label: "Tiered Impact",
|
|
50
|
+
summary: "Weights events based on average duration tiers.",
|
|
51
|
+
implications: [
|
|
52
|
+
"Balances short vs long CC/strip effects.",
|
|
53
|
+
"Uses averaged durations per player."
|
|
54
|
+
],
|
|
55
|
+
tiers: {
|
|
56
|
+
shortMs: 500,
|
|
57
|
+
mediumMs: 1500,
|
|
58
|
+
weights: {
|
|
59
|
+
short: 0.5,
|
|
60
|
+
medium: 1,
|
|
61
|
+
long: 2
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
// src/metricsSettings.ts
|
|
69
|
+
var METRICS_SPEC = metrics_methods_default;
|
|
70
|
+
var DEFAULT_DISRUPTION_METHOD = "count";
|
|
71
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
72
|
+
0 && (module.exports = {
|
|
73
|
+
DEFAULT_DISRUPTION_METHOD,
|
|
74
|
+
METRICS_SPEC
|
|
75
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
type DisruptionMethod = 'count' | 'duration' | 'tiered';
|
|
2
|
+
interface MetricsMethodSpec {
|
|
3
|
+
label: string;
|
|
4
|
+
summary: string;
|
|
5
|
+
implications: string[];
|
|
6
|
+
tiers?: {
|
|
7
|
+
shortMs: number;
|
|
8
|
+
mediumMs: number;
|
|
9
|
+
weights: {
|
|
10
|
+
short: number;
|
|
11
|
+
medium: number;
|
|
12
|
+
long: number;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
interface MetricsSpec {
|
|
17
|
+
specVersion: string;
|
|
18
|
+
methods: Record<DisruptionMethod, MetricsMethodSpec>;
|
|
19
|
+
}
|
|
20
|
+
declare const METRICS_SPEC: MetricsSpec;
|
|
21
|
+
declare const DEFAULT_DISRUPTION_METHOD: DisruptionMethod;
|
|
22
|
+
|
|
23
|
+
export { DEFAULT_DISRUPTION_METHOD, type DisruptionMethod, METRICS_SPEC, type MetricsMethodSpec, type MetricsSpec };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
type DisruptionMethod = 'count' | 'duration' | 'tiered';
|
|
2
|
+
interface MetricsMethodSpec {
|
|
3
|
+
label: string;
|
|
4
|
+
summary: string;
|
|
5
|
+
implications: string[];
|
|
6
|
+
tiers?: {
|
|
7
|
+
shortMs: number;
|
|
8
|
+
mediumMs: number;
|
|
9
|
+
weights: {
|
|
10
|
+
short: number;
|
|
11
|
+
medium: number;
|
|
12
|
+
long: number;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
interface MetricsSpec {
|
|
17
|
+
specVersion: string;
|
|
18
|
+
methods: Record<DisruptionMethod, MetricsMethodSpec>;
|
|
19
|
+
}
|
|
20
|
+
declare const METRICS_SPEC: MetricsSpec;
|
|
21
|
+
declare const DEFAULT_DISRUPTION_METHOD: DisruptionMethod;
|
|
22
|
+
|
|
23
|
+
export { DEFAULT_DISRUPTION_METHOD, type DisruptionMethod, METRICS_SPEC, type MetricsMethodSpec, type MetricsSpec };
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/professionUtils.ts
|
|
21
|
+
var professionUtils_exports = {};
|
|
22
|
+
__export(professionUtils_exports, {
|
|
23
|
+
PROFESSION_COLORS: () => PROFESSION_COLORS,
|
|
24
|
+
getProfessionAbbrev: () => getProfessionAbbrev,
|
|
25
|
+
getProfessionAbbrevSuperscript: () => getProfessionAbbrevSuperscript,
|
|
26
|
+
getProfessionBase: () => getProfessionBase,
|
|
27
|
+
getProfessionColor: () => getProfessionColor,
|
|
28
|
+
getProfessionEmoji: () => getProfessionEmoji,
|
|
29
|
+
hexToRgba: () => hexToRgba,
|
|
30
|
+
toSuperscript: () => toSuperscript
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(professionUtils_exports);
|
|
33
|
+
var PROFESSION_COLORS = {
|
|
34
|
+
"Guardian": "#72C1D9",
|
|
35
|
+
"Dragonhunter": "#72C1D9",
|
|
36
|
+
"Firebrand": "#72C1D9",
|
|
37
|
+
"Willbender": "#72C1D9",
|
|
38
|
+
"Revenant": "#D16E5A",
|
|
39
|
+
"Herald": "#D16E5A",
|
|
40
|
+
"Renegade": "#D16E5A",
|
|
41
|
+
"Vindicator": "#D16E5A",
|
|
42
|
+
"Warrior": "#FFD166",
|
|
43
|
+
"Berserker": "#FFD166",
|
|
44
|
+
"Spellbreaker": "#FFD166",
|
|
45
|
+
"Bladesworn": "#FFD166",
|
|
46
|
+
"Engineer": "#D09C59",
|
|
47
|
+
"Scrapper": "#D09C59",
|
|
48
|
+
"Holosmith": "#D09C59",
|
|
49
|
+
"Mechanist": "#D09C59",
|
|
50
|
+
"Ranger": "#8CDC82",
|
|
51
|
+
"Druid": "#8CDC82",
|
|
52
|
+
"Soulbeast": "#8CDC82",
|
|
53
|
+
"Untamed": "#8CDC82",
|
|
54
|
+
"Thief": "#C08F95",
|
|
55
|
+
"Daredevil": "#C08F95",
|
|
56
|
+
"Deadeye": "#C08F95",
|
|
57
|
+
"Specter": "#C08F95",
|
|
58
|
+
"Elementalist": "#F68A87",
|
|
59
|
+
"Tempest": "#F68A87",
|
|
60
|
+
"Weaver": "#F68A87",
|
|
61
|
+
"Catalyst": "#F68A87",
|
|
62
|
+
"Mesmer": "#B679D5",
|
|
63
|
+
"Chronomancer": "#B679D5",
|
|
64
|
+
"Mirage": "#B679D5",
|
|
65
|
+
"Virtuoso": "#B679D5",
|
|
66
|
+
"Necromancer": "#52A76F",
|
|
67
|
+
"Reaper": "#52A76F",
|
|
68
|
+
"Scourge": "#52A76F",
|
|
69
|
+
"Harbinger": "#52A76F",
|
|
70
|
+
"Ritualist": "#52A76F",
|
|
71
|
+
"Luminary": "#72C1D9",
|
|
72
|
+
"Conduit": "#D16E5A",
|
|
73
|
+
"Paragon": "#FFD166",
|
|
74
|
+
"Amalgam": "#D09C59",
|
|
75
|
+
"Galeshot": "#8CDC82",
|
|
76
|
+
"Antiquary": "#C08F95",
|
|
77
|
+
"Evoker": "#F68A87",
|
|
78
|
+
"Troubadour": "#B679D5",
|
|
79
|
+
"Unknown": "#64748B"
|
|
80
|
+
};
|
|
81
|
+
var PROFESSION_BASE = {
|
|
82
|
+
Guardian: "Guardian",
|
|
83
|
+
Dragonhunter: "Guardian",
|
|
84
|
+
Firebrand: "Guardian",
|
|
85
|
+
Willbender: "Guardian",
|
|
86
|
+
Revenant: "Revenant",
|
|
87
|
+
Herald: "Revenant",
|
|
88
|
+
Renegade: "Revenant",
|
|
89
|
+
Vindicator: "Revenant",
|
|
90
|
+
Warrior: "Warrior",
|
|
91
|
+
Berserker: "Warrior",
|
|
92
|
+
Spellbreaker: "Warrior",
|
|
93
|
+
Bladesworn: "Warrior",
|
|
94
|
+
Engineer: "Engineer",
|
|
95
|
+
Scrapper: "Engineer",
|
|
96
|
+
Holosmith: "Engineer",
|
|
97
|
+
Mechanist: "Engineer",
|
|
98
|
+
Ranger: "Ranger",
|
|
99
|
+
Druid: "Ranger",
|
|
100
|
+
Soulbeast: "Ranger",
|
|
101
|
+
Untamed: "Ranger",
|
|
102
|
+
Thief: "Thief",
|
|
103
|
+
Daredevil: "Thief",
|
|
104
|
+
Deadeye: "Thief",
|
|
105
|
+
Specter: "Thief",
|
|
106
|
+
Elementalist: "Elementalist",
|
|
107
|
+
Tempest: "Elementalist",
|
|
108
|
+
Weaver: "Elementalist",
|
|
109
|
+
Catalyst: "Elementalist",
|
|
110
|
+
Mesmer: "Mesmer",
|
|
111
|
+
Chronomancer: "Mesmer",
|
|
112
|
+
Mirage: "Mesmer",
|
|
113
|
+
Virtuoso: "Mesmer",
|
|
114
|
+
Necromancer: "Necromancer",
|
|
115
|
+
Reaper: "Necromancer",
|
|
116
|
+
Scourge: "Necromancer",
|
|
117
|
+
Harbinger: "Necromancer",
|
|
118
|
+
Ritualist: "Necromancer",
|
|
119
|
+
Luminary: "Guardian",
|
|
120
|
+
Conduit: "Revenant",
|
|
121
|
+
Paragon: "Warrior",
|
|
122
|
+
Amalgam: "Engineer",
|
|
123
|
+
Galeshot: "Ranger",
|
|
124
|
+
Antiquary: "Thief",
|
|
125
|
+
Evoker: "Elementalist",
|
|
126
|
+
Troubadour: "Mesmer",
|
|
127
|
+
Unknown: "Unknown"
|
|
128
|
+
};
|
|
129
|
+
var PROFESSION_ABBREVIATIONS = {
|
|
130
|
+
Guardian: "gdn",
|
|
131
|
+
Dragonhunter: "dh",
|
|
132
|
+
Firebrand: "fb",
|
|
133
|
+
Willbender: "wb",
|
|
134
|
+
Revenant: "rev",
|
|
135
|
+
Herald: "her",
|
|
136
|
+
Renegade: "ren",
|
|
137
|
+
Vindicator: "vin",
|
|
138
|
+
Warrior: "war",
|
|
139
|
+
Berserker: "ber",
|
|
140
|
+
Spellbreaker: "spb",
|
|
141
|
+
Bladesworn: "bsw",
|
|
142
|
+
Engineer: "eng",
|
|
143
|
+
Scrapper: "scr",
|
|
144
|
+
Holosmith: "hol",
|
|
145
|
+
Mechanist: "mec",
|
|
146
|
+
Ranger: "rng",
|
|
147
|
+
Druid: "dru",
|
|
148
|
+
Soulbeast: "slb",
|
|
149
|
+
Untamed: "unt",
|
|
150
|
+
Thief: "thi",
|
|
151
|
+
Daredevil: "dar",
|
|
152
|
+
Deadeye: "dea",
|
|
153
|
+
Specter: "spe",
|
|
154
|
+
Elementalist: "ele",
|
|
155
|
+
Tempest: "tem",
|
|
156
|
+
Weaver: "wev",
|
|
157
|
+
Catalyst: "cat",
|
|
158
|
+
Mesmer: "mes",
|
|
159
|
+
Chronomancer: "chr",
|
|
160
|
+
Mirage: "mir",
|
|
161
|
+
Virtuoso: "vir",
|
|
162
|
+
Necromancer: "nec",
|
|
163
|
+
Reaper: "rea",
|
|
164
|
+
Scourge: "sco",
|
|
165
|
+
Harbinger: "har",
|
|
166
|
+
Ritualist: "rit",
|
|
167
|
+
Luminary: "lum",
|
|
168
|
+
Conduit: "con",
|
|
169
|
+
Paragon: "par",
|
|
170
|
+
Amalgam: "ama",
|
|
171
|
+
Galeshot: "gal",
|
|
172
|
+
Antiquary: "ant",
|
|
173
|
+
Evoker: "evo",
|
|
174
|
+
Troubadour: "tro",
|
|
175
|
+
Unknown: "unk"
|
|
176
|
+
};
|
|
177
|
+
var PROFESSION_EMOJI = {
|
|
178
|
+
Guardian: "\u{1F535}",
|
|
179
|
+
Revenant: "\u{1F534}",
|
|
180
|
+
Warrior: "\u{1F7E1}",
|
|
181
|
+
Engineer: "\u{1F7E0}",
|
|
182
|
+
Ranger: "\u{1F7E2}",
|
|
183
|
+
Thief: "\u26AB\uFE0F",
|
|
184
|
+
Elementalist: "\u{1F534}",
|
|
185
|
+
Mesmer: "\u{1F7E3}",
|
|
186
|
+
Necromancer: "\u{1F7E2}",
|
|
187
|
+
Unknown: "\u26AA\uFE0F"
|
|
188
|
+
};
|
|
189
|
+
function getProfessionColor(profession) {
|
|
190
|
+
return PROFESSION_COLORS[profession] || PROFESSION_COLORS["Unknown"];
|
|
191
|
+
}
|
|
192
|
+
function hexToRgba(hex, alpha) {
|
|
193
|
+
const h = hex.replace("#", "");
|
|
194
|
+
const r = parseInt(h.substring(0, 2), 16);
|
|
195
|
+
const g = parseInt(h.substring(2, 4), 16);
|
|
196
|
+
const b = parseInt(h.substring(4, 6), 16);
|
|
197
|
+
return `rgba(${r},${g},${b},${alpha})`;
|
|
198
|
+
}
|
|
199
|
+
function getProfessionBase(profession) {
|
|
200
|
+
if (!profession) return "Unknown";
|
|
201
|
+
return PROFESSION_BASE[profession] || profession;
|
|
202
|
+
}
|
|
203
|
+
function getProfessionAbbrev(profession) {
|
|
204
|
+
if (!profession) return PROFESSION_ABBREVIATIONS.Unknown;
|
|
205
|
+
return PROFESSION_ABBREVIATIONS[profession] || profession.slice(0, 3).toLowerCase();
|
|
206
|
+
}
|
|
207
|
+
function getProfessionEmoji(profession) {
|
|
208
|
+
const base = getProfessionBase(profession);
|
|
209
|
+
return PROFESSION_EMOJI[base] || PROFESSION_EMOJI.Unknown;
|
|
210
|
+
}
|
|
211
|
+
var SUPERSCRIPT_MAP = {
|
|
212
|
+
a: "\u1D43",
|
|
213
|
+
b: "\u1D47",
|
|
214
|
+
c: "\u1D9C",
|
|
215
|
+
d: "\u1D48",
|
|
216
|
+
e: "\u1D49",
|
|
217
|
+
f: "\u1DA0",
|
|
218
|
+
g: "\u1D4D",
|
|
219
|
+
h: "\u02B0",
|
|
220
|
+
i: "\u2071",
|
|
221
|
+
j: "\u02B2",
|
|
222
|
+
k: "\u1D4F",
|
|
223
|
+
l: "\u02E1",
|
|
224
|
+
m: "\u1D50",
|
|
225
|
+
n: "\u207F",
|
|
226
|
+
o: "\u1D52",
|
|
227
|
+
p: "\u1D56",
|
|
228
|
+
q: "\u146B",
|
|
229
|
+
r: "\u02B3",
|
|
230
|
+
s: "\u02E2",
|
|
231
|
+
t: "\u1D57",
|
|
232
|
+
u: "\u1D58",
|
|
233
|
+
v: "\u1D5B",
|
|
234
|
+
w: "\u02B7",
|
|
235
|
+
x: "\u02E3",
|
|
236
|
+
y: "\u02B8",
|
|
237
|
+
z: "\u1DBB",
|
|
238
|
+
"0": "\u2070",
|
|
239
|
+
"1": "\xB9",
|
|
240
|
+
"2": "\xB2",
|
|
241
|
+
"3": "\xB3",
|
|
242
|
+
"4": "\u2074",
|
|
243
|
+
"5": "\u2075",
|
|
244
|
+
"6": "\u2076",
|
|
245
|
+
"7": "\u2077",
|
|
246
|
+
"8": "\u2078",
|
|
247
|
+
"9": "\u2079"
|
|
248
|
+
};
|
|
249
|
+
function toSuperscript(value) {
|
|
250
|
+
return value.toLowerCase().split("").map((char) => SUPERSCRIPT_MAP[char] || char).join("");
|
|
251
|
+
}
|
|
252
|
+
function getProfessionAbbrevSuperscript(profession) {
|
|
253
|
+
return toSuperscript(getProfessionAbbrev(profession));
|
|
254
|
+
}
|
|
255
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
256
|
+
0 && (module.exports = {
|
|
257
|
+
PROFESSION_COLORS,
|
|
258
|
+
getProfessionAbbrev,
|
|
259
|
+
getProfessionAbbrevSuperscript,
|
|
260
|
+
getProfessionBase,
|
|
261
|
+
getProfessionColor,
|
|
262
|
+
getProfessionEmoji,
|
|
263
|
+
hexToRgba,
|
|
264
|
+
toSuperscript
|
|
265
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare const PROFESSION_COLORS: Record<string, string>;
|
|
2
|
+
declare function getProfessionColor(profession: string): string;
|
|
3
|
+
declare function hexToRgba(hex: string, alpha: number): string;
|
|
4
|
+
declare function getProfessionBase(profession: string): string;
|
|
5
|
+
declare function getProfessionAbbrev(profession: string): string;
|
|
6
|
+
declare function getProfessionEmoji(profession: string): string;
|
|
7
|
+
declare function toSuperscript(value: string): string;
|
|
8
|
+
declare function getProfessionAbbrevSuperscript(profession: string): string;
|
|
9
|
+
|
|
10
|
+
export { PROFESSION_COLORS, getProfessionAbbrev, getProfessionAbbrevSuperscript, getProfessionBase, getProfessionColor, getProfessionEmoji, hexToRgba, toSuperscript };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare const PROFESSION_COLORS: Record<string, string>;
|
|
2
|
+
declare function getProfessionColor(profession: string): string;
|
|
3
|
+
declare function hexToRgba(hex: string, alpha: number): string;
|
|
4
|
+
declare function getProfessionBase(profession: string): string;
|
|
5
|
+
declare function getProfessionAbbrev(profession: string): string;
|
|
6
|
+
declare function getProfessionEmoji(profession: string): string;
|
|
7
|
+
declare function toSuperscript(value: string): string;
|
|
8
|
+
declare function getProfessionAbbrevSuperscript(profession: string): string;
|
|
9
|
+
|
|
10
|
+
export { PROFESSION_COLORS, getProfessionAbbrev, getProfessionAbbrevSuperscript, getProfessionBase, getProfessionColor, getProfessionEmoji, hexToRgba, toSuperscript };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PROFESSION_COLORS,
|
|
3
|
+
getProfessionAbbrev,
|
|
4
|
+
getProfessionAbbrevSuperscript,
|
|
5
|
+
getProfessionBase,
|
|
6
|
+
getProfessionColor,
|
|
7
|
+
getProfessionEmoji,
|
|
8
|
+
hexToRgba,
|
|
9
|
+
toSuperscript
|
|
10
|
+
} from "./chunk-WW5XFXGC.js";
|
|
11
|
+
export {
|
|
12
|
+
PROFESSION_COLORS,
|
|
13
|
+
getProfessionAbbrev,
|
|
14
|
+
getProfessionAbbrevSuperscript,
|
|
15
|
+
getProfessionBase,
|
|
16
|
+
getProfessionColor,
|
|
17
|
+
getProfessionEmoji,
|
|
18
|
+
hexToRgba,
|
|
19
|
+
toSuperscript
|
|
20
|
+
};
|