@voltro/plugin-progression 0.87.0 → 0.88.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 (59) hide show
  1. package/CHANGELOG.md +169 -6
  2. package/THIRD-PARTY-NOTICES.md +741 -89
  3. package/dist/achievementComponents.js +1 -2
  4. package/dist/achievementStore.js +1 -2
  5. package/dist/achievementTables.entity.js +1 -2
  6. package/dist/achievements.js +1 -2
  7. package/dist/capture.js +1 -2
  8. package/dist/cmsQuests.js +1 -2
  9. package/dist/curve.js +1 -2
  10. package/dist/daily.js +1 -2
  11. package/dist/dailyStore.js +1 -2
  12. package/dist/dailySystem.fixture.js +1 -2
  13. package/dist/dailyTables.entity.js +1 -2
  14. package/dist/declarationFixtures.js +1 -2
  15. package/dist/errors.js +1 -2
  16. package/dist/pass.js +1 -2
  17. package/dist/passRules.js +1 -2
  18. package/dist/passStore.js +1 -2
  19. package/dist/passTables.entity.js +1 -2
  20. package/dist/plugin.js +1 -2
  21. package/dist/port.js +1 -2
  22. package/dist/progressionStore.js +1 -2
  23. package/dist/questComponents.js +1 -2
  24. package/dist/questPort.js +1 -2
  25. package/dist/questRefresh.js +1 -2
  26. package/dist/questRefresh.server.js +1 -2
  27. package/dist/questRerollJournal.js +1 -2
  28. package/dist/questStore.js +1 -2
  29. package/dist/questTables.entity.js +1 -2
  30. package/dist/quests.js +1 -2
  31. package/dist/rankClosure.js +1 -2
  32. package/dist/rankClosure.server.js +1 -2
  33. package/dist/rankClosureWorkflow.js +1 -2
  34. package/dist/rankReader.server.js +1 -2
  35. package/dist/rankRewardParent.server.js +1 -2
  36. package/dist/rankSeasons.js +1 -2
  37. package/dist/rankStore.js +3 -4
  38. package/dist/rankSystem.fixture.js +1 -2
  39. package/dist/rankTables.entity.js +1 -2
  40. package/dist/ranks.js +1 -2
  41. package/dist/resourceStore.js +1 -2
  42. package/dist/resourceTables.entity.js +1 -2
  43. package/dist/resources.js +1 -2
  44. package/dist/reward.js +1 -2
  45. package/dist/rewardDelivery.js +1 -2
  46. package/dist/rewardDelivery.server.js +1 -2
  47. package/dist/rewardDeliveryRecord.js +1 -2
  48. package/dist/rewardDeliveryWorkflow.js +1 -2
  49. package/dist/rpc.js +1 -2
  50. package/dist/stats.js +1 -2
  51. package/dist/systemFixtures.js +1 -2
  52. package/dist/tables.entity.js +1 -2
  53. package/dist/track.js +1 -2
  54. package/dist/tutorial.js +1 -2
  55. package/dist/tutorialStore.js +1 -2
  56. package/dist/tutorialSystem.fixture.js +1 -2
  57. package/dist/tutorialTables.entity.js +1 -2
  58. package/dist/web.js +1 -2
  59. package/package.json +12 -12
@@ -4,7 +4,7 @@ import { Schema as n } from "effect";
4
4
  import { useId as r } from "react";
5
5
  import { useUiStrings as i } from "@voltro/ui";
6
6
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
- //#region src/achievementComponents.tsx
7
+ // src/achievementComponents.tsx
8
8
  var s = n.decodeUnknownSync(n.Array(e), { onExcessProperty: "error" }), c = (e) => /^[A-Za-z0-9][A-Za-z0-9._:-]{0,119}$/.test(e), l = (e) => /^(0|[1-9][0-9]{0,18})$/.test(e) && BigInt(e) <= 9223372036854775807n, u = (e) => {
9
9
  try {
10
10
  if (!Array.isArray(e) || e.length > 256) return;
@@ -88,5 +88,4 @@ function p(e) {
88
88
  children: t.invalid
89
89
  });
90
90
  }
91
- //#endregion
92
91
  export { d as AchievementCard, p as AchievementList };
@@ -6,7 +6,7 @@ import { captureAchievementPlatform as u, captureAchievementStats as d, defaultA
6
6
  import { achievementDefinitionsTable as h, achievementOperationsTable as g, achievementRewardsTable as _, achievementSubjectsTable as v, achievementUnlockLedgerTable as y, achievementsTable as b } from "./achievementTables.entity.js";
7
7
  import { Effect as x, Result as S } from "effect";
8
8
  import { and as C, eq as w, queryFor as T } from "@voltro/database";
9
- //#region src/achievementStore.ts
9
+ // src/achievementStore.ts
10
10
  var E = (e) => {
11
11
  let n = o(e, [
12
12
  "definitions",
@@ -599,5 +599,4 @@ var E = (e) => {
599
599
  rebuildAchievements: (e, t, n) => $(e, t, n, !0)
600
600
  });
601
601
  };
602
- //#endregion
603
602
  export { D as captureAchievementHistory, M as dataStoreAchievements, E as resolveAchievementOptions };
@@ -1,5 +1,5 @@
1
1
  import { boolean as e, id as t, integer as n, json as r, table as i, text as a, timestamp as o } from "@voltro/database";
2
- //#region src/achievementTables.entity.ts
2
+ // src/achievementTables.entity.ts
3
3
  var s = () => a().maxLength(120).externalId().sensitive("pii"), c = () => a().maxLength(120).externalId().sensitive("pii"), l = () => a().maxLength(64).nullable().serverOnly(), u = i("_voltro_prog_achievement_definitions", {
4
4
  id: t({ prefix: "pad" }),
5
5
  tenantId: s(),
@@ -94,5 +94,4 @@ var s = () => a().maxLength(120).externalId().sensitive("pii"), c = () => a().ma
94
94
  m,
95
95
  h
96
96
  ];
97
- //#endregion
98
97
  export { u as achievementDefinitionsTable, m as achievementOperationsTable, h as achievementRewardsTable, d as achievementSubjectsTable, g as achievementTables, p as achievementUnlockLedgerTable, f as achievementsTable };
@@ -2,7 +2,7 @@ import { progressionError as e } from "./errors.js";
2
2
  import { identifier as t, integer as n, list as r, object as i, progressValue as a } from "./capture.js";
3
3
  import { captureRewards as o } from "./reward.js";
4
4
  import { Context as s } from "effect";
5
- //#region src/achievements.ts
5
+ // src/achievements.ts
6
6
  var c = (n, r, o = {}) => {
7
7
  let s = i(o, ["period", "seasonId"]), c = s.period ?? "lifetime", l = a(r);
8
8
  if (c !== "lifetime" && c !== "season" || l === 0n || c === "lifetime" && s.seasonId !== void 0 && s.seasonId !== null) throw e("invalid_input");
@@ -201,5 +201,4 @@ var c = (n, r, o = {}) => {
201
201
  progress: Object.freeze(d)
202
202
  });
203
203
  }, g = class extends s.Service()("@voltro/AchievementStatSource") {}, _ = class extends s.Service()("@voltro/AchievementPort") {};
204
- //#endregion
205
204
  export { _ as AchievementPort, g as AchievementStatSource, l as captureAchievementCondition, d as captureAchievementPlatform, p as captureAchievementStats, u as composite, m as defaultAchievementEvaluator, f as defineAchievement, h as resolveAchievementEvaluation, c as statAtLeast };
package/dist/capture.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { progressionError as e } from "./errors.js";
2
- //#region src/capture.ts
2
+ // src/capture.ts
3
3
  var t = (t, n) => {
4
4
  if (!t || typeof t != "object" || Array.isArray(t)) throw e("invalid_input");
5
5
  let r = Object.getPrototypeOf(t);
@@ -60,5 +60,4 @@ var t = (t, n) => {
60
60
  }
61
61
  return Object.freeze(r);
62
62
  };
63
- //#endregion
64
63
  export { a as MAX_PROGRESS_VALUE, s as captureArguments, c as captureMethods, n as identifier, r as integer, i as list, t as object, o as progressValue };
package/dist/cmsQuests.js CHANGED
@@ -4,7 +4,7 @@ import { defineQuestPool as a } from "./quests.js";
4
4
  import { questHash as o } from "./questStore.js";
5
5
  import { Effect as s } from "effect";
6
6
  import { Schema as c, cmsContext as l, contentTypeToEntities as u, defineContentType as d } from "@voltro/cms";
7
- //#region src/cmsQuests.ts
7
+ // src/cmsQuests.ts
8
8
  var f = d({
9
9
  name: "quest_pool",
10
10
  displayName: "Quest pool",
@@ -79,5 +79,4 @@ var f = d({
79
79
  }
80
80
  } });
81
81
  };
82
- //#endregion
83
82
  export { m as cmsQuestSource, p as progressionQuestContentTables, f as progressionQuestContentType };
package/dist/curve.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { progressionError as e } from "./errors.js";
2
2
  import { integer as t, list as n, object as r, progressValue as i } from "./capture.js";
3
- //#region src/curve.ts
3
+ // src/curve.ts
4
4
  var a = (t) => {
5
5
  let r = n(t, 1e4).map((e) => i(e));
6
6
  if (r.length === 0 || r[0] !== 0n || r.some((e, t) => t > 0 && e <= r[t - 1])) throw e("invalid_curve");
@@ -34,5 +34,4 @@ var a = (t) => {
34
34
  });
35
35
  return t(r(c), 1, o.thresholds.length);
36
36
  };
37
- //#endregion
38
37
  export { s as defaultXpCurve, a as explicitLevelCurve, o as levelCurve, c as resolveXpCurve };
package/dist/daily.js CHANGED
@@ -3,7 +3,7 @@ import { identifier as t, integer as n, list as r, object as i } from "./capture
3
3
  import { captureRewards as a } from "./reward.js";
4
4
  import { questTimezone as o } from "./quests.js";
5
5
  import { Context as s, Cron as c } from "effect";
6
- //#region src/daily.ts
6
+ // src/daily.ts
7
7
  var l = (o) => {
8
8
  let s = i(o, [
9
9
  "id",
@@ -122,5 +122,4 @@ var l = (o) => {
122
122
  version: t(n.version)
123
123
  });
124
124
  };
125
- //#endregion
126
125
  export { m as DailyProfileSource, h as LoginCalendarPort, g as captureDailyProfile, f as captureDailyState, d as defaultDailyClaimPolicy, u as defaultDailyWindow, l as defineLoginCalendar, p as resolveDailyClaim };
@@ -6,7 +6,7 @@ import { questHash as m } from "./questStore.js";
6
6
  import { dailyClaimsTable as h, dailyDefinitionsTable as g, dailyOperationsTable as _, dailyRewardsTable as v, dailyStatesTable as y, dailySubjectsTable as b } from "./dailyTables.entity.js";
7
7
  import { Effect as x, Result as S } from "effect";
8
8
  import { and as C, eq as w, queryFor as T } from "@voltro/database";
9
- //#region src/dailyStore.ts
9
+ // src/dailyStore.ts
10
10
  var E = (e) => {
11
11
  let n = o(e, [
12
12
  "calendars",
@@ -417,5 +417,4 @@ var E = (e) => {
417
417
  rebuildDaily: (e, t, n) => Z(e, t, n, !0)
418
418
  });
419
419
  };
420
- //#endregion
421
420
  export { A as dataStoreLoginCalendars, E as resolveDailyOptions };
@@ -6,7 +6,7 @@ import { progressionFixture as l } from "./declarationFixtures.js";
6
6
  import { Effect as u, Layer as d } from "effect";
7
7
  import { ensureTableRegistered as f } from "@voltro/database";
8
8
  import { InMemoryDataStore as p } from "@voltro/runtime";
9
- //#region src/dailySystem.fixture.ts
9
+ // src/dailySystem.fixture.ts
10
10
  var m = Date.UTC(2026, 9, 10), h = l(), g = a({
11
11
  id: "fixture.daily",
12
12
  days: [[e("gold", 1)], [e("gold", 2)]],
@@ -134,5 +134,4 @@ var m = Date.UTC(2026, 9, 10), h = l(), g = a({
134
134
  }
135
135
  }
136
136
  });
137
- //#endregion
138
137
  export { T as dailyClaimPolicySystemFixture, b as dailyProfileSourceFakeLayer, C as dailyProfileSourceSystemFixture, y as loginCalendarFakeLayer, S as loginCalendarPortSystemFixture };
@@ -1,5 +1,5 @@
1
1
  import { boolean as e, id as t, integer as n, json as r, table as i, text as a, timestamp as o } from "@voltro/database";
2
- //#region src/dailyTables.entity.ts
2
+ // src/dailyTables.entity.ts
3
3
  var s = () => a().maxLength(120).externalId().sensitive("pii"), c = () => a().maxLength(120).externalId().sensitive("pii"), l = () => a().maxLength(64).nullable().serverOnly(), u = i("_voltro_prog_daily_definitions", {
4
4
  id: t({ prefix: "pdd" }),
5
5
  tenantId: s(),
@@ -86,5 +86,4 @@ var s = () => a().maxLength(120).externalId().sensitive("pii"), c = () => a().ma
86
86
  m,
87
87
  h
88
88
  ];
89
- //#endregion
90
89
  export { p as dailyClaimsTable, u as dailyDefinitionsTable, m as dailyOperationsTable, h as dailyRewardsTable, f as dailyStatesTable, d as dailySubjectsTable, g as dailyTables };
@@ -7,7 +7,7 @@ import { defaultQuestProgressResolver as g, defaultQuestSelector as _, defineQue
7
7
  import { levelCurve as S } from "./curve.js";
8
8
  import { defineProgression as C } from "./track.js";
9
9
  import { defaultResourceRegen as w, defineRegenResource as T, resolveResourceRegen as E } from "./resources.js";
10
- //#region src/declarationFixtures.ts
10
+ // src/declarationFixtures.ts
11
11
  var D = () => {
12
12
  let e = S({
13
13
  base: 100,
@@ -139,5 +139,4 @@ var D = () => {
139
139
  state: s(r)
140
140
  });
141
141
  };
142
- //#endregion
143
142
  export { f as defaultPassCatchUp, g as defaultQuestProgressResolver, _ as defaultQuestSelector, e as defaultRankDecay, t as defaultRankGrade, n as defaultRankScore, r as defaultRankSeasonReset, w as defaultResourceRegen, c as defaultTutorialStepPolicy, v as defineQuestPool, T as defineRegenResource, k as passFixture, D as progressionFixture, j as rankFixture, M as rankSeasonPolicyFixture, h as resolvePassCatchUp, y as resolveQuestProgress, E as resolveResourceRegen, d as resolveTutorialStep, O as resourceFixture, b as selectQuests, x as staticQuestSource, A as tutorialFixture };
package/dist/errors.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Schema as e } from "effect";
2
- //#region src/errors.ts
2
+ // src/errors.ts
3
3
  var t = class extends e.TaggedError()("ProgressionError", { code: e.Literals([
4
4
  "invalid_input",
5
5
  "invalid_record",
@@ -16,5 +16,4 @@ var t = class extends e.TaggedError()("ProgressionError", { code: e.Literals([
16
16
  "limit_exceeded",
17
17
  "unavailable"
18
18
  ]) }) {}, n = (e) => new t({ code: e });
19
- //#endregion
20
19
  export { t as ProgressionError, n as progressionError };
package/dist/pass.js CHANGED
@@ -2,7 +2,7 @@ import { progressionError as e } from "./errors.js";
2
2
  import { identifier as t, integer as n, list as r, object as i, progressValue as a } from "./capture.js";
3
3
  import { captureRewards as o } from "./reward.js";
4
4
  import { Context as s } from "effect";
5
- //#region src/pass.ts
5
+ // src/pass.ts
6
6
  var c = (s) => {
7
7
  let c = i(s, [
8
8
  "id",
@@ -118,5 +118,4 @@ var c = (s) => {
118
118
  }
119
119
  return Object.freeze(i);
120
120
  }, g = class extends s.Service()("@voltro/SeasonPassPort") {};
121
- //#endregion
122
121
  export { g as SeasonPassPort, m as capturePassState, h as claimablePassTiers, l as defaultPassCatchUp, c as defineSeasonPass, p as passInitialState, d as passMask, f as passTier, u as resolvePassCatchUp };
package/dist/passRules.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { progressionError as e } from "./errors.js";
2
2
  import { identifier as t, integer as n, object as r, progressValue as i } from "./capture.js";
3
3
  import { capturePassState as a, claimablePassTiers as o, passMask as s } from "./pass.js";
4
- //#region src/passRules.ts
4
+ // src/passRules.ts
5
5
  var c = (a, o) => {
6
6
  let s = r(a);
7
7
  if (s.kind === "xp" && Object.keys(s).length === 5) {
@@ -92,5 +92,4 @@ var c = (a, o) => {
92
92
  claims: Object.freeze(g)
93
93
  });
94
94
  };
95
- //#endregion
96
95
  export { l as applyPassIntent, c as capturePassIntent };
package/dist/passStore.js CHANGED
@@ -8,7 +8,7 @@ import { applyPassIntent as v, capturePassIntent as y } from "./passRules.js";
8
8
  import { passDefinitionsTable as b, passLedgerTable as x, passOperationsTable as S, passRewardsTable as C, passStatesTable as w, passSubjectsTable as T } from "./passTables.entity.js";
9
9
  import { Effect as E } from "effect";
10
10
  import { and as D, eq as O, queryFor as k } from "@voltro/database";
11
- //#region src/passStore.ts
11
+ // src/passStore.ts
12
12
  var A = (e) => {
13
13
  let n = o(e, [
14
14
  "definitions",
@@ -481,5 +481,4 @@ var A = (e) => {
481
481
  rebuildPasses: (e, t, n) => ne(e, t, n, !0)
482
482
  });
483
483
  };
484
- //#endregion
485
484
  export { P as dataStoreSeasonPasses, A as resolvePassOptions };
@@ -1,5 +1,5 @@
1
1
  import { boolean as e, id as t, integer as n, json as r, table as i, text as a, timestamp as o } from "@voltro/database";
2
- //#region src/passTables.entity.ts
2
+ // src/passTables.entity.ts
3
3
  var s = () => a().maxLength(120).externalId().sensitive("pii"), c = () => a().maxLength(120).externalId().sensitive("pii"), l = () => a().maxLength(64).nullable().serverOnly(), u = i("_voltro_prog_pass_definitions", {
4
4
  id: t({ prefix: "ppd" }),
5
5
  tenantId: s(),
@@ -92,5 +92,4 @@ var s = () => a().maxLength(120).externalId().sensitive("pii"), c = () => a().ma
92
92
  m,
93
93
  h
94
94
  ];
95
- //#endregion
96
95
  export { u as passDefinitionsTable, p as passLedgerTable, m as passOperationsTable, h as passRewardsTable, f as passStatesTable, d as passSubjectsTable, g as passTables };
package/dist/plugin.js CHANGED
@@ -39,7 +39,7 @@ import { Effect as s, Layer as c } from "effect";
39
39
  import { defineLicensedGamePlugin as Nt } from "@voltro/plugin-licensing/gate";
40
40
  import { fileURLToPath as Pt } from "node:url";
41
41
  import { systemSubject as Ft } from "@voltro/protocol";
42
- //#region src/plugin.ts
42
+ // src/plugin.ts
43
43
  var It = Object.freeze({
44
44
  slots: {
45
45
  questSelector: {
@@ -1082,5 +1082,4 @@ var It = Object.freeze({
1082
1082
  })
1083
1083
  };
1084
1084
  };
1085
- //#endregion
1086
1085
  export { u as progressionAchievementsSystemContract, p as progressionDailySystemContract, d as progressionPassesSystemContract, g as progressionPlugin, It as progressionQuestsSystemContract, m as progressionRanksSystemContract, l as progressionResourcesSystemContract, h as progressionSystemContract, f as progressionTutorialsSystemContract };
package/dist/port.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { Context as e } from "effect";
2
- //#region src/port.ts
2
+ // src/port.ts
3
3
  var t = class extends e.Service()("@voltro/ProgressionPort") {};
4
- //#endregion
5
4
  export { t as ProgressionPort };
@@ -10,7 +10,7 @@ import { progressionDefinitionsTable as y, progressionOperationsTable as b, prog
10
10
  import { Effect as O, Schema as k } from "effect";
11
11
  import { createHash as A } from "node:crypto";
12
12
  import { and as j, eq as M, queryFor as N } from "@voltro/database";
13
- //#region src/progressionStore.ts
13
+ // src/progressionStore.ts
14
14
  var P = (e) => {
15
15
  let n = o(e, [
16
16
  "tracks",
@@ -702,5 +702,4 @@ var P = (e) => {
702
702
  achievementHistory: (e, t, n, r) => O.map($(e, t, n, !1, r), (e) => e.history)
703
703
  });
704
704
  };
705
- //#endregion
706
705
  export { B as dataStoreProgression, P as resolveProgressionOptions };
@@ -5,7 +5,7 @@ import { Schema as i } from "effect";
5
5
  import { useEffect as a, useId as o, useRef as s, useState as c } from "react";
6
6
  import { useUiStrings as l } from "@voltro/ui";
7
7
  import { jsx as u, jsxs as d } from "react/jsx-runtime";
8
- //#region src/questComponents.tsx
8
+ // src/questComponents.tsx
9
9
  function f({ quest: e, now: t, title: n, locale: r, pending: i = !1, blocked: a = !1, error: f = !1, onReroll: p }) {
10
10
  let m = l().quests, h = o(), g = s(!1), [_, v] = c(!1), y = e.expiresAt <= t, b = !y && e.state === "active" && e.rerollsUsed < e.rerollsAllowed && p !== void 0;
11
11
  return /* @__PURE__ */ d("article", {
@@ -159,5 +159,4 @@ function g(e) {
159
159
  children: t.invalid
160
160
  });
161
161
  }
162
- //#endregion
163
162
  export { f as QuestCard, g as QuestList };
package/dist/questPort.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { Context as e } from "effect";
2
- //#region src/questPort.ts
2
+ // src/questPort.ts
3
3
  var t = class extends e.Service()("@voltro/QuestPort") {};
4
- //#endregion
5
4
  export { t as QuestPort };
@@ -2,7 +2,7 @@ import { progressionError as e } from "./errors.js";
2
2
  import { captureArguments as t, identifier as n, integer as r, list as i, object as a } from "./capture.js";
3
3
  import { defineQuestPool as o, questTimezone as s } from "./quests.js";
4
4
  import { Context as c, Cron as l, Effect as u } from "effect";
5
- //#region src/questRefresh.ts
5
+ // src/questRefresh.ts
6
6
  var d = class extends c.Service()("@voltro/QuestPlayerSource") {}, f = ({ pool: t, player: n, at: r }) => {
7
7
  let i = t.refresh.timezone === "player" ? n.timezone : t.refresh.timezone, a = l.parse(t.refresh.cron, i);
8
8
  if (a._tag === "Failure") throw e("invalid_input");
@@ -52,5 +52,4 @@ var d = class extends c.Service()("@voltro/QuestPlayerSource") {}, f = ({ pool:
52
52
  return u.fail(e("invalid_input"));
53
53
  }
54
54
  };
55
- //#endregion
56
55
  export { d as QuestPlayerSource, h as QuestRefreshPort, p as captureQuestPlayer, g as captureQuestPlayers, _ as capturedRefresh, f as defaultQuestWindow, m as resolveQuestWindow };
@@ -5,7 +5,7 @@ import { questHash as s } from "./questStore.js";
5
5
  import { captureQuestPlayer as c, captureQuestPlayers as l, capturedRefresh as u, defaultQuestWindow as d, resolveQuestWindow as f } from "./questRefresh.js";
6
6
  import { Effect as p, Result as m } from "effect";
7
7
  import { createHash as h } from "node:crypto";
8
- //#region src/questRefresh.server.ts
8
+ // src/questRefresh.server.ts
9
9
  var g = async (e) => {
10
10
  let t = await p.runPromise(p.result(e));
11
11
  if (m.isFailure(t)) throw t.failure;
@@ -122,5 +122,4 @@ var g = async (e) => {
122
122
  if (new Set(n.map((e) => e.id)).size !== n.length) throw t("invalid_record");
123
123
  return n;
124
124
  };
125
- //#endregion
126
125
  export { _ as defaultQuestSeed, y as makeQuestRefreshService, v as resolveQuestRefreshOptions };
@@ -1,6 +1,6 @@
1
1
  import { QuestReceiptSchema as e, questsRerollDescriptor as t } from "./rpc.js";
2
2
  import { Schema as n } from "effect";
3
- //#region src/questRerollJournal.ts
3
+ // src/questRerollJournal.ts
4
4
  var r = (e) => {
5
5
  if (!/^[A-Za-z0-9][A-Za-z0-9._:-]{0,119}$/.test(e)) throw Error("Invalid quest request scope");
6
6
  return e;
@@ -73,5 +73,4 @@ var r = (e) => {
73
73
  pending: (e) => s().pending(e),
74
74
  recover: (e, t) => s().recover(e, t)
75
75
  };
76
- //#endregion
77
76
  export { c as browserQuestRerollJournal, o as makeQuestRerollJournal };
@@ -5,7 +5,7 @@ import { questDefinitionsTable as m, questOperationsTable as h, questOriginsTabl
5
5
  import { Effect as x } from "effect";
6
6
  import { createHash as S } from "node:crypto";
7
7
  import { and as C, eq as w, queryFor as T } from "@voltro/database";
8
- //#region src/questStore.ts
8
+ // src/questStore.ts
9
9
  var E = (e) => {
10
10
  let o = a(e, [
11
11
  "source",
@@ -588,5 +588,4 @@ var E = (e) => {
588
588
  eraseSubject: (e) => x.asVoid($(e, !0))
589
589
  });
590
590
  };
591
- //#endregion
592
591
  export { M as dataStoreQuests, O as questHash, E as resolveQuestOptions };
@@ -1,5 +1,5 @@
1
1
  import { boolean as e, id as t, integer as n, json as r, table as i, text as a, timestamp as o } from "@voltro/database";
2
- //#region src/questTables.entity.ts
2
+ // src/questTables.entity.ts
3
3
  var s = () => a().maxLength(120).externalId().sensitive("pii"), c = () => a().maxLength(120).externalId().sensitive("pii"), l = i("_voltro_prog_quest_definitions", {
4
4
  id: t({ prefix: "qpd" }),
5
5
  tenantId: s(),
@@ -113,5 +113,4 @@ var s = () => a().maxLength(120).externalId().sensitive("pii"), c = () => a().ma
113
113
  m,
114
114
  h
115
115
  ];
116
- //#endregion
117
116
  export { l as questDefinitionsTable, p as questOperationsTable, m as questOriginsTable, h as questRewardsTable, u as questSubjectsTable, g as questTables, d as questWindowsTable, f as questsTable };
package/dist/quests.js CHANGED
@@ -2,7 +2,7 @@ import { progressionError as e } from "./errors.js";
2
2
  import { identifier as t, integer as n, list as r, object as i, progressValue as a } from "./capture.js";
3
3
  import { captureRewards as o } from "./reward.js";
4
4
  import { Context as s, Cron as c, Effect as l } from "effect";
5
- //#region src/quests.ts
5
+ // src/quests.ts
6
6
  var u = (n) => {
7
7
  let r = i(n), a = Object.entries(r);
8
8
  if (a.length > 32) throw e("invalid_input");
@@ -149,5 +149,4 @@ var u = (n) => {
149
149
  }
150
150
  } });
151
151
  };
152
- //#endregion
153
152
  export { y as QuestSource, g as captureQuestSignal, _ as defaultQuestProgressResolver, m as defaultQuestSelector, f as defineQuest, p as defineQuestPool, u as questFields, d as questTimezone, v as resolveQuestProgress, h as selectQuests, b as staticQuestSource };
@@ -1,7 +1,7 @@
1
1
  import { progressionError as e } from "./errors.js";
2
2
  import { identifier as t, integer as n, object as r } from "./capture.js";
3
3
  import { Context as i, Schema as a } from "effect";
4
- //#region src/rankClosure.ts
4
+ // src/rankClosure.ts
5
5
  var o = a.String.pipe(a.check(a.isPattern(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,119}$/))), s = a.Struct({ unitId: o }), c = a.Struct({
6
6
  unitId: o,
7
7
  status: a.Literals(["closed", "erased"]),
@@ -31,5 +31,4 @@ var o = a.String.pipe(a.check(a.isPattern(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,119}$/)
31
31
  at: s
32
32
  });
33
33
  }, u = class extends i.Service()("@voltro/RankClosurePort") {};
34
- //#endregion
35
34
  export { u as RankClosurePort, c as RankClosureReceiptSchema, s as RankClosureRequestSchema, l as captureRankClosureReceipt };
@@ -7,7 +7,7 @@ import { resolveRankStoreOptions as u } from "./rankStore.js";
7
7
  import { Effect as d, Result as f, Schema as p } from "effect";
8
8
  import { WorkflowRunHandleSchema as m } from "@voltro/protocol";
9
9
  import { and as h, eq as g, gt as _, lte as v, queryFor as y } from "@voltro/database";
10
- //#region src/rankClosure.server.ts
10
+ // src/rankClosure.server.ts
11
11
  var b = (e = {}) => {
12
12
  let n = o(e, [
13
13
  "service",
@@ -135,5 +135,4 @@ var b = (e = {}) => {
135
135
  }
136
136
  });
137
137
  };
138
- //#endregion
139
138
  export { w as dataStoreRankClosure, b as resolveRankClosureOptions };
@@ -1,7 +1,7 @@
1
1
  import { ProgressionError as e } from "./errors.js";
2
2
  import { RankClosureReceiptSchema as t, RankClosureRequestSchema as n } from "./rankClosure.js";
3
3
  import { workflow as r } from "@voltro/workflow/define";
4
- //#region src/rankClosureWorkflow.ts
4
+ // src/rankClosureWorkflow.ts
5
5
  var i = r({
6
6
  name: "progression.closeRankSeason",
7
7
  payload: n,
@@ -12,5 +12,4 @@ var i = r({
12
12
  suspendOnFailure: !0,
13
13
  internal: !0
14
14
  });
15
- //#endregion
16
15
  export { i as ProgressionRankClosure };
@@ -2,7 +2,7 @@ import { progressionError as e } from "./errors.js";
2
2
  import { captureArguments as t, identifier as n, integer as r, list as i, object as a } from "./capture.js";
3
3
  import { captureRankRating as o, defineRankLadder as s, resolveRank as c, resolveRankStrategies as l } from "./ranks.js";
4
4
  import { Effect as u } from "effect";
5
- //#region src/rankReader.server.ts
5
+ // src/rankReader.server.ts
6
6
  var d = (t) => {
7
7
  let n = a(t);
8
8
  if (typeof n.myRating != "function") throw e("invalid_input");
@@ -53,5 +53,4 @@ var d = (t) => {
53
53
  }
54
54
  } });
55
55
  };
56
- //#endregion
57
56
  export { f as makeRankReader, d as ratingSourceFromLeaderboards };
@@ -6,7 +6,7 @@ import { acceptRankObservation as c, closeRankSeasonState as l, defineRankSeason
6
6
  import { questHash as f } from "./questStore.js";
7
7
  import { rankDefinitionsTable as p, rankLedgerTable as m, rankOperationsTable as h } from "./rankTables.entity.js";
8
8
  import { and as g, eq as _, queryFor as v } from "@voltro/database";
9
- //#region src/rankRewardParent.server.ts
9
+ // src/rankRewardParent.server.ts
10
10
  var y = (e, ...t) => e + f(t).slice(0, 56), b = (e) => n(e instanceof Date ? e.getTime() : typeof e == "string" ? Date.parse(e) : NaN, 0, 864e13), x = async (x, S, C, w, T) => {
11
11
  let E = r(w.receipt, [
12
12
  "operationId",
@@ -61,5 +61,4 @@ var y = (e, ...t) => e + f(t).slice(0, 56), b = (e) => n(e instanceof Date ? e.g
61
61
  let H = N.rewards[z.highest.tierIndex], U = H.findIndex((e, n) => y("prr_", t(w.id), String(n)) === S.id);
62
62
  if (U < 0 || E.rewardsQueued !== H.length || f(s(S.reward)) !== f(H[U])) throw e("invalid_record");
63
63
  };
64
- //#endregion
65
64
  export { x as admitRankRewardParent };
@@ -3,7 +3,7 @@ import { identifier as t, integer as n, list as r, object as i } from "./capture
3
3
  import { capturePlayerRank as a } from "./ranks.js";
4
4
  import { captureRewards as o } from "./reward.js";
5
5
  import { Context as s } from "effect";
6
- //#region src/rankSeasons.ts
6
+ // src/rankSeasons.ts
7
7
  var c = (a, s) => {
8
8
  let c = i(a, [
9
9
  "id",
@@ -87,5 +87,4 @@ var c = (a, s) => {
87
87
  resetScore: o
88
88
  }, t, r, s);
89
89
  }, p = class extends s.Service()("@voltro/RankPort") {};
90
- //#endregion
91
90
  export { p as RankPort, d as acceptRankObservation, u as captureRankSeasonState, f as closeRankSeasonState, c as defineRankSeason, l as initialRankSeasonState };
package/dist/rankStore.js CHANGED
@@ -8,7 +8,7 @@ import { questHash as y } from "./questStore.js";
8
8
  import { rankClosureUnitsTable as b, rankDefinitionsTable as x, rankLedgerTable as S, rankOperationsTable as C, rankRewardsTable as w, rankStatesTable as T, rankSubjectsTable as E } from "./rankTables.entity.js";
9
9
  import { Effect as D } from "effect";
10
10
  import { and as O, eq as k, queryFor as A } from "@voltro/database";
11
- //#region src/rankStore.ts
11
+ // src/rankStore.ts
12
12
  var j = (e) => {
13
13
  let n = o(e, [
14
14
  "ladders",
@@ -436,7 +436,7 @@ var j = (e) => {
436
436
  let D = await J(n, T, e, h), O = await J(n, b, e, h), k = D.length === g.size && O.length === g.size;
437
437
  for (let t of D) {
438
438
  let n = Z(t, e, h), r = g.get(n.seasonId);
439
- (!r || y(r) !== y(n)) && (k = !1);
439
+ r && y(r) === y(n) || (k = !1);
440
440
  }
441
441
  let A = [...g.values()].map((t) => {
442
442
  let { season: n } = L(t.seasonId), r = V(e, h, n), i = M("prc_", r), c = a.find((e) => e.seasonId === n.id), l = t.closedAt === null ? void 0 : a.find((e) => e.seasonId === n.id && o(o(e.intent).request).kind === "close"), d = l ? Q(u.find((e) => e.id === l.operationId)) : null;
@@ -462,7 +462,7 @@ var j = (e) => {
462
462
  });
463
463
  for (let e of O) {
464
464
  let t = A.find((t) => t.id === e.id);
465
- (!t || e.ownerId !== h || e.stateId !== t.stateId || e.seasonId !== t.seasonId || e.version !== t.version || e.state !== t.state || N(e.until) !== t.until.getTime() || N(e.createdAt) !== t.createdAt.getTime() || y(e.receipt) !== y(t.receipt)) && (k = !1);
465
+ t && e.ownerId === h && e.stateId === t.stateId && e.seasonId === t.seasonId && e.version === t.version && e.state === t.state && N(e.until) === t.until.getTime() && N(e.createdAt) === t.createdAt.getTime() && y(e.receipt) === y(t.receipt) || (k = !1);
466
466
  }
467
467
  if (f) {
468
468
  await n.deleteMany(T.tableName, { where: H(e, h) });
@@ -517,5 +517,4 @@ var j = (e) => {
517
517
  rebuildRanks: (e, t, n) => se(e, t, n, !0)
518
518
  });
519
519
  };
520
- //#endregion
521
520
  export { F as dataStoreRankSeasons, j as resolveRankStoreOptions };
@@ -6,7 +6,7 @@ import { progressionFixture as u, rankSeasonPolicyFixture as d } from "./declara
6
6
  import { Effect as f, Layer as p } from "effect";
7
7
  import { ensureTableRegistered as m } from "@voltro/database";
8
8
  import { InMemoryDataStore as h } from "@voltro/runtime";
9
- //#region src/rankSystem.fixture.ts
9
+ // src/rankSystem.fixture.ts
10
10
  var g = u(), { ladder: _, rating: v, at: y, season: b } = d(), x = Object.freeze({ read: () => f.succeed(v) }), S = {
11
11
  app: {
12
12
  name: "rank-port-fixture",
@@ -166,5 +166,4 @@ var g = u(), { ladder: _, rating: v, at: y, season: b } = d(), x = Object.freeze
166
166
  expected: 0
167
167
  }
168
168
  });
169
- //#endregion
170
169
  export { j as rankDecaySystemFixture, C as rankFakeLayer, M as rankGradeSystemFixture, E as rankPortSystemFixture, w as rankRatingSourceFakeLayer, D as rankRatingSourceSystemFixture, A as rankScoreSystemFixture, N as rankSeasonResetSystemFixture };
@@ -1,5 +1,5 @@
1
1
  import { boolean as e, id as t, integer as n, json as r, table as i, text as a, timestamp as o } from "@voltro/database";
2
- //#region src/rankTables.entity.ts
2
+ // src/rankTables.entity.ts
3
3
  var s = () => a().maxLength(120).externalId().sensitive("pii"), c = () => a().maxLength(120).externalId().sensitive("pii"), l = () => a().maxLength(64).nullable().serverOnly(), u = i("_voltro_prog_rank_definitions", {
4
4
  id: t({ prefix: "prd" }),
5
5
  tenantId: s(),
@@ -97,5 +97,4 @@ var s = () => a().maxLength(120).externalId().sensitive("pii"), c = () => a().ma
97
97
  h,
98
98
  g
99
99
  ];
100
- //#endregion
101
100
  export { g as rankClosureUnitsTable, u as rankDefinitionsTable, p as rankLedgerTable, m as rankOperationsTable, h as rankRewardsTable, f as rankStatesTable, d as rankSubjectsTable, _ as rankTables };
package/dist/ranks.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { progressionError as e } from "./errors.js";
2
2
  import { identifier as t, integer as n, list as r, object as i } from "./capture.js";
3
3
  import { Context as a } from "effect";
4
- //#region src/ranks.ts
4
+ // src/ranks.ts
5
5
  var o = (t, n = -1e9, r = 1e9) => {
6
6
  if (typeof t != "number" || !Number.isFinite(t) || Object.is(t, -0) || t < n || t > r) throw e("invalid_input");
7
7
  return t;
@@ -215,5 +215,4 @@ var o = (t, n = -1e9, r = 1e9) => {
215
215
  rulesVersion: a
216
216
  });
217
217
  };
218
- //#endregion
219
218
  export { v as RankRatingSource, y as capturePlayerRank, s as captureRankRating, d as defaultRankDecay, p as defaultRankGrade, u as defaultRankScore, m as defaultRankSeasonReset, l as defineRankLadder, g as resolveRank, _ as resolveRankSeasonReset, h as resolveRankStrategies };
@@ -5,7 +5,7 @@ import { captureResourceState as l, defaultResourceRegen as u, defineRegenResour
5
5
  import { resourceDefinitionsTable as p, resourceMovementsTable as m, resourceOperationsTable as h, resourceOriginsTable as g, resourceSubjectsTable as _, resourcesTable as v } from "./resourceTables.entity.js";
6
6
  import { Effect as y } from "effect";
7
7
  import { and as b, eq as x, queryFor as S } from "@voltro/database";
8
- //#region src/resourceStore.ts
8
+ // src/resourceStore.ts
9
9
  var C = (e) => {
10
10
  let n = o(e, [
11
11
  "definitions",
@@ -460,5 +460,4 @@ var C = (e) => {
460
460
  rebuildResources: (e, t, n) => q(e, t, n, !0)
461
461
  });
462
462
  };
463
- //#endregion
464
463
  export { D as dataStoreResources, C as resolveResourceOptions };
@@ -1,5 +1,5 @@
1
1
  import { bigint as e, boolean as t, id as n, integer as r, json as i, table as a, text as o, timestamp as s } from "@voltro/database";
2
- //#region src/resourceTables.entity.ts
2
+ // src/resourceTables.entity.ts
3
3
  var c = () => o().maxLength(120).externalId().sensitive("pii"), l = () => o().maxLength(120).externalId().sensitive("pii"), u = () => o().maxLength(64).nullable().serverOnly(), d = a("_voltro_prog_resource_definitions", {
4
4
  id: n({ prefix: "prd" }),
5
5
  tenantId: c(),
@@ -85,5 +85,4 @@ var c = () => o().maxLength(120).externalId().sensitive("pii"), l = () => o().ma
85
85
  h,
86
86
  g
87
87
  ];
88
- //#endregion
89
88
  export { d as resourceDefinitionsTable, m as resourceMovementsTable, h as resourceOperationsTable, g as resourceOriginsTable, f as resourceSubjectsTable, _ as resourceTables, p as resourcesTable };
package/dist/resources.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { progressionError as e } from "./errors.js";
2
2
  import { identifier as t, integer as n, object as r, progressValue as i } from "./capture.js";
3
3
  import { Context as a, Duration as o } from "effect";
4
- //#region src/resources.ts
4
+ // src/resources.ts
5
5
  var s = (a) => {
6
6
  let s = r(a, [
7
7
  "id",
@@ -56,5 +56,4 @@ var s = (a) => {
56
56
  if (BigInt(u.value) < BigInt(a.value) || u.anchorAt < a.anchorAt || u.anchorAt > o) throw e("invalid_input");
57
57
  return u;
58
58
  }, d = class extends a.Service()("@voltro/RegenResourcePort") {};
59
- //#endregion
60
59
  export { d as RegenResourcePort, l as captureResourceState, c as defaultResourceRegen, s as defineRegenResource, u as resolveResourceRegen };