@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.
Files changed (86) hide show
  1. package/dist/aggregationTypes.cjs +18 -0
  2. package/dist/aggregationTypes.d.cts +21 -0
  3. package/dist/aggregationTypes.d.ts +21 -0
  4. package/dist/aggregationTypes.js +1 -0
  5. package/dist/boonGeneration.cjs +308 -0
  6. package/dist/boonGeneration.d.cts +65 -0
  7. package/dist/boonGeneration.d.ts +65 -0
  8. package/dist/boonGeneration.js +16 -0
  9. package/dist/chunk-42DVJJLC.js +106 -0
  10. package/dist/chunk-4F55Q6K2.js +0 -0
  11. package/dist/chunk-ELKDB763.js +349 -0
  12. package/dist/chunk-FU74LJEM.js +77 -0
  13. package/dist/chunk-J3YCFY3C.js +37 -0
  14. package/dist/chunk-JP2ZL44R.js +18 -0
  15. package/dist/chunk-K2SRAMGC.js +0 -0
  16. package/dist/chunk-KRHODGVU.js +48 -0
  17. package/dist/chunk-LIGIXSSA.js +1383 -0
  18. package/dist/chunk-M2WR3JBQ.js +0 -0
  19. package/dist/chunk-PMVLNDZZ.js +279 -0
  20. package/dist/chunk-R5EJF5AW.js +147 -0
  21. package/dist/chunk-RGXSI3AI.js +298 -0
  22. package/dist/chunk-UFJJ6WLD.js +197 -0
  23. package/dist/chunk-WW5XFXGC.js +234 -0
  24. package/dist/chunk-ZFZS7JFU.js +10 -0
  25. package/dist/combatMetrics.cjs +251 -0
  26. package/dist/combatMetrics.d.cts +26 -0
  27. package/dist/combatMetrics.d.ts +26 -0
  28. package/dist/combatMetrics.js +21 -0
  29. package/dist/computePlayerAggregation.cjs +2042 -0
  30. package/dist/computePlayerAggregation.d.cts +249 -0
  31. package/dist/computePlayerAggregation.d.ts +249 -0
  32. package/dist/computePlayerAggregation.js +30 -0
  33. package/dist/conditionsMetrics.cjs +328 -0
  34. package/dist/conditionsMetrics.d.cts +67 -0
  35. package/dist/conditionsMetrics.d.ts +67 -0
  36. package/dist/conditionsMetrics.js +18 -0
  37. package/dist/constants.cjs +36 -0
  38. package/dist/constants.d.cts +18 -0
  39. package/dist/constants.d.ts +18 -0
  40. package/dist/constants.js +10 -0
  41. package/dist/dashboardMetrics.cjs +226 -0
  42. package/dist/dashboardMetrics.d.cts +29 -0
  43. package/dist/dashboardMetrics.d.ts +29 -0
  44. package/dist/dashboardMetrics.js +42 -0
  45. package/dist/dpsReportTypes.cjs +18 -0
  46. package/dist/dpsReportTypes.d.cts +294 -0
  47. package/dist/dpsReportTypes.d.ts +294 -0
  48. package/dist/dpsReportTypes.js +1 -0
  49. package/dist/index.cjs +2902 -0
  50. package/dist/index.d.cts +13 -0
  51. package/dist/index.d.ts +13 -0
  52. package/dist/index.js +152 -0
  53. package/dist/metrics-methods.json +38 -0
  54. package/dist/metricsSettings.cjs +75 -0
  55. package/dist/metricsSettings.d.cts +23 -0
  56. package/dist/metricsSettings.d.ts +23 -0
  57. package/dist/metricsSettings.js +8 -0
  58. package/dist/professionUtils.cjs +265 -0
  59. package/dist/professionUtils.d.cts +10 -0
  60. package/dist/professionUtils.d.ts +10 -0
  61. package/dist/professionUtils.js +20 -0
  62. package/dist/reportMetrics.cjs +224 -0
  63. package/dist/reportMetrics.d.cts +85 -0
  64. package/dist/reportMetrics.d.ts +85 -0
  65. package/dist/reportMetrics.js +12 -0
  66. package/dist/resUtility.cjs +52 -0
  67. package/dist/resUtility.d.cts +5 -0
  68. package/dist/resUtility.d.ts +5 -0
  69. package/dist/resUtility.js +8 -0
  70. package/dist/roles.cjs +18 -0
  71. package/dist/roles.d.cts +17 -0
  72. package/dist/roles.d.ts +17 -0
  73. package/dist/roles.js +1 -0
  74. package/dist/rollup.cjs +378 -0
  75. package/dist/rollup.d.cts +103 -0
  76. package/dist/rollup.d.ts +103 -0
  77. package/dist/rollup.js +16 -0
  78. package/dist/statsMetrics.cjs +153 -0
  79. package/dist/statsMetrics.d.cts +39 -0
  80. package/dist/statsMetrics.d.ts +39 -0
  81. package/dist/statsMetrics.js +22 -0
  82. package/dist/timestampUtils.cjs +63 -0
  83. package/dist/timestampUtils.d.cts +12 -0
  84. package/dist/timestampUtils.d.ts +12 -0
  85. package/dist/timestampUtils.js +9 -0
  86. package/package.json +44 -0
@@ -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';
@@ -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,8 @@
1
+ import {
2
+ DEFAULT_DISRUPTION_METHOD,
3
+ METRICS_SPEC
4
+ } from "./chunk-KRHODGVU.js";
5
+ export {
6
+ DEFAULT_DISRUPTION_METHOD,
7
+ METRICS_SPEC
8
+ };
@@ -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
+ };