@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.
- package/CHANGELOG.md +169 -6
- package/THIRD-PARTY-NOTICES.md +741 -89
- package/dist/achievementComponents.js +1 -2
- package/dist/achievementStore.js +1 -2
- package/dist/achievementTables.entity.js +1 -2
- package/dist/achievements.js +1 -2
- package/dist/capture.js +1 -2
- package/dist/cmsQuests.js +1 -2
- package/dist/curve.js +1 -2
- package/dist/daily.js +1 -2
- package/dist/dailyStore.js +1 -2
- package/dist/dailySystem.fixture.js +1 -2
- package/dist/dailyTables.entity.js +1 -2
- package/dist/declarationFixtures.js +1 -2
- package/dist/errors.js +1 -2
- package/dist/pass.js +1 -2
- package/dist/passRules.js +1 -2
- package/dist/passStore.js +1 -2
- package/dist/passTables.entity.js +1 -2
- package/dist/plugin.js +1 -2
- package/dist/port.js +1 -2
- package/dist/progressionStore.js +1 -2
- package/dist/questComponents.js +1 -2
- package/dist/questPort.js +1 -2
- package/dist/questRefresh.js +1 -2
- package/dist/questRefresh.server.js +1 -2
- package/dist/questRerollJournal.js +1 -2
- package/dist/questStore.js +1 -2
- package/dist/questTables.entity.js +1 -2
- package/dist/quests.js +1 -2
- package/dist/rankClosure.js +1 -2
- package/dist/rankClosure.server.js +1 -2
- package/dist/rankClosureWorkflow.js +1 -2
- package/dist/rankReader.server.js +1 -2
- package/dist/rankRewardParent.server.js +1 -2
- package/dist/rankSeasons.js +1 -2
- package/dist/rankStore.js +3 -4
- package/dist/rankSystem.fixture.js +1 -2
- package/dist/rankTables.entity.js +1 -2
- package/dist/ranks.js +1 -2
- package/dist/resourceStore.js +1 -2
- package/dist/resourceTables.entity.js +1 -2
- package/dist/resources.js +1 -2
- package/dist/reward.js +1 -2
- package/dist/rewardDelivery.js +1 -2
- package/dist/rewardDelivery.server.js +1 -2
- package/dist/rewardDeliveryRecord.js +1 -2
- package/dist/rewardDeliveryWorkflow.js +1 -2
- package/dist/rpc.js +1 -2
- package/dist/stats.js +1 -2
- package/dist/systemFixtures.js +1 -2
- package/dist/tables.entity.js +1 -2
- package/dist/track.js +1 -2
- package/dist/tutorial.js +1 -2
- package/dist/tutorialStore.js +1 -2
- package/dist/tutorialSystem.fixture.js +1 -2
- package/dist/tutorialTables.entity.js +1 -2
- package/dist/web.js +1 -2
- 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
|
-
|
|
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 };
|
package/dist/achievementStore.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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 };
|
package/dist/achievements.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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|
package/dist/dailyStore.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
package/dist/progressionStore.js
CHANGED
|
@@ -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
|
-
|
|
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 };
|
package/dist/questComponents.js
CHANGED
|
@@ -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
|
-
|
|
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
package/dist/questRefresh.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|
package/dist/questStore.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|
package/dist/rankClosure.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 } from "./capture.js";
|
|
3
3
|
import { Context as i, Schema as a } from "effect";
|
|
4
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|
package/dist/rankSeasons.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|
package/dist/resourceStore.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 };
|