tempest.games 0.3.13 → 0.3.14
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 +7 -0
- package/app/assets/{index-Cg1fNccI.js → index-DGnHyR3O.js} +224 -224
- package/app/index.html +1 -1
- package/bin/backend.bun.js +270 -246
- package/bin/backend.worker.bug-rangers.bun.js +114 -107
- package/bin/frontend.bun.js +211 -211
- package/bin/setup-db.bun.js +54 -54
- package/package.json +15 -15
|
@@ -9123,9 +9123,9 @@ ${disposal.trace}` : `No previous disposal trace for ${stringKey} was found.`);
|
|
|
9123
9123
|
const joinKeys = target.keyRefsInJoins.getRelatedKeys(stringKey);
|
|
9124
9124
|
if (joinKeys)
|
|
9125
9125
|
for (const joinKey of joinKeys) {
|
|
9126
|
-
const
|
|
9127
|
-
if (
|
|
9128
|
-
|
|
9126
|
+
const join2 = target.joins.get(joinKey);
|
|
9127
|
+
if (join2)
|
|
9128
|
+
join2.relations.delete(claim);
|
|
9129
9129
|
}
|
|
9130
9130
|
else {
|
|
9131
9131
|
const compound = decomposeCompound(claim);
|
|
@@ -9133,9 +9133,9 @@ ${disposal.trace}` : `No previous disposal trace for ${stringKey} was found.`);
|
|
|
9133
9133
|
const [, a, b] = compound;
|
|
9134
9134
|
const joinKey = target.keyRefsInJoins.getRelatedKey(simpleCompound(a, b));
|
|
9135
9135
|
if (joinKey) {
|
|
9136
|
-
const
|
|
9137
|
-
if (
|
|
9138
|
-
|
|
9136
|
+
const join2 = target.joins.get(joinKey);
|
|
9137
|
+
if (join2)
|
|
9138
|
+
join2.relations.delete(a, b);
|
|
9139
9139
|
}
|
|
9140
9140
|
}
|
|
9141
9141
|
}
|
|
@@ -9888,7 +9888,7 @@ function createRegularAtomFamily(store, options, internalRoles) {
|
|
|
9888
9888
|
individualOptions.catch = options.catch;
|
|
9889
9889
|
return createRegularAtom(target, individualOptions, family);
|
|
9890
9890
|
};
|
|
9891
|
-
const
|
|
9891
|
+
const atomFamily2 = {
|
|
9892
9892
|
...familyToken,
|
|
9893
9893
|
create,
|
|
9894
9894
|
default: options.default,
|
|
@@ -9896,7 +9896,7 @@ function createRegularAtomFamily(store, options, internalRoles) {
|
|
|
9896
9896
|
install: (s) => createRegularAtomFamily(s, options),
|
|
9897
9897
|
internalRoles
|
|
9898
9898
|
};
|
|
9899
|
-
store.families.set(options.key,
|
|
9899
|
+
store.families.set(options.key, atomFamily2);
|
|
9900
9900
|
if (isFn(options.default) === false)
|
|
9901
9901
|
store.defaults.set(options.key, options.default);
|
|
9902
9902
|
return familyToken;
|
|
@@ -9961,7 +9961,7 @@ function createWritableHeldSelectorFamily(store, options, internalRoles) {
|
|
|
9961
9961
|
set: options.set(key)
|
|
9962
9962
|
}, family);
|
|
9963
9963
|
};
|
|
9964
|
-
const
|
|
9964
|
+
const selectorFamily2 = {
|
|
9965
9965
|
...familyToken,
|
|
9966
9966
|
create,
|
|
9967
9967
|
internalRoles,
|
|
@@ -9969,7 +9969,7 @@ function createWritableHeldSelectorFamily(store, options, internalRoles) {
|
|
|
9969
9969
|
install: (s) => createWritableHeldSelectorFamily(s, options),
|
|
9970
9970
|
default: options.const
|
|
9971
9971
|
};
|
|
9972
|
-
store.families.set(familyKey,
|
|
9972
|
+
store.families.set(familyKey, selectorFamily2);
|
|
9973
9973
|
return familyToken;
|
|
9974
9974
|
}
|
|
9975
9975
|
function createWritablePureSelectorFamily(store, options, internalRoles) {
|
|
@@ -10000,7 +10000,7 @@ function createWritablePureSelectorFamily(store, options, internalRoles) {
|
|
|
10000
10000
|
individualOptions.catch = options.catch;
|
|
10001
10001
|
return createWritablePureSelector(target, individualOptions, family);
|
|
10002
10002
|
};
|
|
10003
|
-
const
|
|
10003
|
+
const selectorFamily2 = {
|
|
10004
10004
|
...familyToken,
|
|
10005
10005
|
create,
|
|
10006
10006
|
internalRoles,
|
|
@@ -10018,7 +10018,7 @@ function createWritablePureSelectorFamily(store, options, internalRoles) {
|
|
|
10018
10018
|
});
|
|
10019
10019
|
}
|
|
10020
10020
|
};
|
|
10021
|
-
store.families.set(familyKey,
|
|
10021
|
+
store.families.set(familyKey, selectorFamily2);
|
|
10022
10022
|
return familyToken;
|
|
10023
10023
|
}
|
|
10024
10024
|
function createSelectorFamily(store, options) {
|
|
@@ -10161,17 +10161,17 @@ function dispatchOrDeferStateUpdate(target, state, proto2, stateIsNewlyCreated,
|
|
|
10161
10161
|
}
|
|
10162
10162
|
}
|
|
10163
10163
|
}
|
|
10164
|
-
function resetAtom(target,
|
|
10165
|
-
switch (
|
|
10164
|
+
function resetAtom(target, atom2) {
|
|
10165
|
+
switch (atom2.type) {
|
|
10166
10166
|
case `mutable_atom`:
|
|
10167
|
-
return setAtom(target,
|
|
10167
|
+
return setAtom(target, atom2, new atom2.class);
|
|
10168
10168
|
case `atom`: {
|
|
10169
10169
|
let def;
|
|
10170
|
-
if (isFn(
|
|
10171
|
-
def = safeCompute(target,
|
|
10170
|
+
if (isFn(atom2.default))
|
|
10171
|
+
def = safeCompute(target, atom2);
|
|
10172
10172
|
else
|
|
10173
|
-
def =
|
|
10174
|
-
return setAtom(target,
|
|
10173
|
+
def = atom2.default;
|
|
10174
|
+
return setAtom(target, atom2, def);
|
|
10175
10175
|
}
|
|
10176
10176
|
}
|
|
10177
10177
|
}
|
|
@@ -10185,8 +10185,8 @@ function resetAtomOrSelector(target, state) {
|
|
|
10185
10185
|
case `writable_held_selector`:
|
|
10186
10186
|
{
|
|
10187
10187
|
const atoms = traceRootSelectorAtoms(target, state.key);
|
|
10188
|
-
for (const
|
|
10189
|
-
dispatchOrDeferStateUpdate(target, state, resetAtom(target,
|
|
10188
|
+
for (const atom2 of atoms.values())
|
|
10189
|
+
dispatchOrDeferStateUpdate(target, state, resetAtom(target, atom2), false);
|
|
10190
10190
|
const value2 = state.getFrom(target);
|
|
10191
10191
|
protoUpdate = {
|
|
10192
10192
|
oldValue: value2,
|
|
@@ -10198,8 +10198,8 @@ function resetAtomOrSelector(target, state) {
|
|
|
10198
10198
|
{
|
|
10199
10199
|
const oldValue = safeCompute(target, state);
|
|
10200
10200
|
const atoms = traceRootSelectorAtoms(target, state.key);
|
|
10201
|
-
for (const
|
|
10202
|
-
dispatchOrDeferStateUpdate(target, state, resetAtom(target,
|
|
10201
|
+
for (const atom2 of atoms.values())
|
|
10202
|
+
dispatchOrDeferStateUpdate(target, state, resetAtom(target, atom2), false);
|
|
10203
10203
|
protoUpdate = {
|
|
10204
10204
|
oldValue,
|
|
10205
10205
|
newValue: safeCompute(target, state)
|
|
@@ -10215,26 +10215,26 @@ function setIntoStore(store, ...params) {
|
|
|
10215
10215
|
function resetInStore(store, ...params) {
|
|
10216
10216
|
setIntoStore(store, ...[...params, RESET_STATE]);
|
|
10217
10217
|
}
|
|
10218
|
-
function setSelector(target,
|
|
10218
|
+
function setSelector(target, selector2, next2) {
|
|
10219
10219
|
let oldValue;
|
|
10220
10220
|
let newValue;
|
|
10221
10221
|
let constant;
|
|
10222
|
-
const { type: type2, key } =
|
|
10223
|
-
switch (
|
|
10222
|
+
const { type: type2, key } = selector2;
|
|
10223
|
+
switch (selector2.type) {
|
|
10224
10224
|
case `writable_pure_selector`:
|
|
10225
|
-
oldValue = readOrComputeValue(target,
|
|
10225
|
+
oldValue = readOrComputeValue(target, selector2, `mut`);
|
|
10226
10226
|
newValue = become(next2, oldValue);
|
|
10227
|
-
newValue = writeToCache(target,
|
|
10227
|
+
newValue = writeToCache(target, selector2, newValue);
|
|
10228
10228
|
break;
|
|
10229
10229
|
case `writable_held_selector`:
|
|
10230
|
-
constant =
|
|
10230
|
+
constant = selector2.const;
|
|
10231
10231
|
become(next2, constant);
|
|
10232
10232
|
oldValue = constant;
|
|
10233
10233
|
newValue = constant;
|
|
10234
10234
|
}
|
|
10235
10235
|
target.logger.info(`\u2B50`, type2, key, `setting to`, newValue);
|
|
10236
10236
|
markDone(target, key);
|
|
10237
|
-
|
|
10237
|
+
selector2.setSelf(newValue);
|
|
10238
10238
|
return {
|
|
10239
10239
|
oldValue,
|
|
10240
10240
|
newValue
|
|
@@ -10313,8 +10313,8 @@ function traceRootSelectorAtoms(store, selectorKey, covered = /* @__PURE__ */ ne
|
|
|
10313
10313
|
continue;
|
|
10314
10314
|
covered.add(dependencyKey);
|
|
10315
10315
|
if (isAtomKey(store, dependencyKey)) {
|
|
10316
|
-
const
|
|
10317
|
-
roots.set(
|
|
10316
|
+
const atom2 = store.atoms.get(dependencyKey);
|
|
10317
|
+
roots.set(atom2.key, atom2);
|
|
10318
10318
|
} else
|
|
10319
10319
|
dependencies.push(...getSelectorDependencyKeys(store, dependencyKey));
|
|
10320
10320
|
}
|
|
@@ -10559,19 +10559,19 @@ function createStandaloneSelector(store, options) {
|
|
|
10559
10559
|
const isWritable = `set` in options;
|
|
10560
10560
|
const isHeld = `const` in options;
|
|
10561
10561
|
if (isHeld && isWritable) {
|
|
10562
|
-
const
|
|
10563
|
-
store.on.selectorCreation.next(
|
|
10564
|
-
return
|
|
10562
|
+
const state2 = createWritableHeldSelector(store, options, undefined);
|
|
10563
|
+
store.on.selectorCreation.next(state2);
|
|
10564
|
+
return state2;
|
|
10565
10565
|
}
|
|
10566
10566
|
if (isHeld) {
|
|
10567
|
-
const
|
|
10568
|
-
store.on.selectorCreation.next(
|
|
10569
|
-
return
|
|
10567
|
+
const state2 = createReadonlyHeldSelector(store, options, undefined);
|
|
10568
|
+
store.on.selectorCreation.next(state2);
|
|
10569
|
+
return state2;
|
|
10570
10570
|
}
|
|
10571
10571
|
if (isWritable) {
|
|
10572
|
-
const
|
|
10573
|
-
store.on.selectorCreation.next(
|
|
10574
|
-
return
|
|
10572
|
+
const state2 = createWritablePureSelector(store, options, undefined);
|
|
10573
|
+
store.on.selectorCreation.next(state2);
|
|
10574
|
+
return state2;
|
|
10575
10575
|
}
|
|
10576
10576
|
const state = createReadonlyPureSelector(store, options, undefined);
|
|
10577
10577
|
store.on.selectorCreation.next(state);
|
|
@@ -10670,8 +10670,8 @@ function subscribeToState(store, token, key, handleUpdate) {
|
|
|
10670
10670
|
let updateHandler = safelyHandleUpdate;
|
|
10671
10671
|
if (isSelector) {
|
|
10672
10672
|
readOrComputeValue(store, state);
|
|
10673
|
-
for (const [atomKey,
|
|
10674
|
-
rootSubs.set(atomKey, subscribeToRootDependency(store, state,
|
|
10673
|
+
for (const [atomKey, atom2] of traceRootSelectorAtoms(store, state.key))
|
|
10674
|
+
rootSubs.set(atomKey, subscribeToRootDependency(store, state, atom2));
|
|
10675
10675
|
updateHandler = function updateRootsBeforeHandlingUpdate(update) {
|
|
10676
10676
|
const dependencies = traceRootSelectorAtoms(store, state.key);
|
|
10677
10677
|
for (const [previousRootKey, unsub] of rootSubs)
|
|
@@ -10681,8 +10681,8 @@ function subscribeToState(store, token, key, handleUpdate) {
|
|
|
10681
10681
|
unsub();
|
|
10682
10682
|
rootSubs.delete(previousRootKey);
|
|
10683
10683
|
}
|
|
10684
|
-
for (const [atomKey,
|
|
10685
|
-
rootSubs.set(atomKey, subscribeToRootDependency(store, state,
|
|
10684
|
+
for (const [atomKey, atom2] of dependencies)
|
|
10685
|
+
rootSubs.set(atomKey, subscribeToRootDependency(store, state, atom2));
|
|
10686
10686
|
safelyHandleUpdate(update);
|
|
10687
10687
|
};
|
|
10688
10688
|
}
|
|
@@ -10780,7 +10780,7 @@ function createMutableAtomFamily(store, options, internalRoles) {
|
|
|
10780
10780
|
individualOptions.effects = options.effects(key);
|
|
10781
10781
|
return createMutableAtom(target, individualOptions, family);
|
|
10782
10782
|
};
|
|
10783
|
-
const
|
|
10783
|
+
const atomFamily2 = {
|
|
10784
10784
|
...familyToken,
|
|
10785
10785
|
create,
|
|
10786
10786
|
class: options.class,
|
|
@@ -10788,7 +10788,7 @@ function createMutableAtomFamily(store, options, internalRoles) {
|
|
|
10788
10788
|
install: (s) => createMutableAtomFamily(s, options),
|
|
10789
10789
|
internalRoles
|
|
10790
10790
|
};
|
|
10791
|
-
store.families.set(options.key,
|
|
10791
|
+
store.families.set(options.key, atomFamily2);
|
|
10792
10792
|
createWritablePureSelectorFamily(store, {
|
|
10793
10793
|
key: `${options.key}:JSON`,
|
|
10794
10794
|
get: (key) => ({ get }) => get(familyToken, key).toJSON(),
|
|
@@ -10796,7 +10796,7 @@ function createMutableAtomFamily(store, options, internalRoles) {
|
|
|
10796
10796
|
set(familyToken, key, options.class.fromJSON(newValue));
|
|
10797
10797
|
}
|
|
10798
10798
|
}, [`mutable`, `json`]);
|
|
10799
|
-
new FamilyTracker(
|
|
10799
|
+
new FamilyTracker(atomFamily2, store);
|
|
10800
10800
|
return familyToken;
|
|
10801
10801
|
}
|
|
10802
10802
|
function isTransceiver(value2) {
|
|
@@ -10849,16 +10849,16 @@ function readFromCache(target, state, mut) {
|
|
|
10849
10849
|
target.logger.info(`\uD83D\uDCD6`, state.type, state.key, `reading cached value`);
|
|
10850
10850
|
let value2 = target.valueMap.get(state.key);
|
|
10851
10851
|
if (mut === `mut` && state.type === `mutable_atom` && isChildStore(target)) {
|
|
10852
|
-
const
|
|
10852
|
+
const mutableAtom2 = state;
|
|
10853
10853
|
const { parent } = target;
|
|
10854
|
-
if (target.valueMap.hasOwn(
|
|
10854
|
+
if (target.valueMap.hasOwn(mutableAtom2.key))
|
|
10855
10855
|
return value2;
|
|
10856
|
-
const parentValue = parent.valueMap.get(
|
|
10857
|
-
target.logger.info(`\uD83D\uDCC3`, `atom`,
|
|
10856
|
+
const parentValue = parent.valueMap.get(mutableAtom2.key);
|
|
10857
|
+
target.logger.info(`\uD83D\uDCC3`, `atom`, mutableAtom2.key, `copying`);
|
|
10858
10858
|
const jsonValue = parentValue.toJSON();
|
|
10859
|
-
const copiedValue =
|
|
10860
|
-
target.valueMap.set(
|
|
10861
|
-
new Tracker(
|
|
10859
|
+
const copiedValue = mutableAtom2.class.fromJSON(jsonValue);
|
|
10860
|
+
target.valueMap.set(mutableAtom2.key, copiedValue);
|
|
10861
|
+
new Tracker(mutableAtom2, parent);
|
|
10862
10862
|
value2 = copiedValue;
|
|
10863
10863
|
}
|
|
10864
10864
|
return value2;
|
|
@@ -10872,9 +10872,9 @@ function evictCachedValue(target, key) {
|
|
|
10872
10872
|
target.valueMap.delete(key);
|
|
10873
10873
|
target.logger.info(`\uD83D\uDDD1`, `state`, key, `evicted`);
|
|
10874
10874
|
}
|
|
10875
|
-
function evictDownstreamFromAtom(store,
|
|
10875
|
+
function evictDownstreamFromAtom(store, atom2) {
|
|
10876
10876
|
const target = newest(store);
|
|
10877
|
-
const { key, type: type2 } =
|
|
10877
|
+
const { key, type: type2 } = atom2;
|
|
10878
10878
|
const downstreamKeys = target.selectorAtoms.getRelatedKeys(key);
|
|
10879
10879
|
target.logger.info(`\uD83E\uDDF9`, type2, key, downstreamKeys ? `evicting ${downstreamKeys.size} states downstream:` : `no downstream states`, downstreamKeys ?? `to evict`);
|
|
10880
10880
|
if (downstreamKeys) {
|
|
@@ -10952,20 +10952,20 @@ function createRegularAtom(store, options, family, internalRoles) {
|
|
|
10952
10952
|
store.on.atomCreation.next(token);
|
|
10953
10953
|
return token;
|
|
10954
10954
|
}
|
|
10955
|
-
function hasRole(
|
|
10956
|
-
if (`internalRoles` in
|
|
10955
|
+
function hasRole(atom2, role) {
|
|
10956
|
+
if (`internalRoles` in atom2 === false)
|
|
10957
10957
|
return false;
|
|
10958
|
-
return
|
|
10958
|
+
return atom2.internalRoles.includes(role);
|
|
10959
10959
|
}
|
|
10960
10960
|
function disposeAtom(store, atomToken) {
|
|
10961
10961
|
const target = newest(store);
|
|
10962
10962
|
const { key, family } = atomToken;
|
|
10963
|
-
const
|
|
10963
|
+
const atom2 = withdraw(target, atomToken);
|
|
10964
10964
|
if (!family)
|
|
10965
10965
|
store.logger.error(`\u274C`, `atom`, key, `Standalone atoms cannot be disposed.`);
|
|
10966
10966
|
else {
|
|
10967
|
-
|
|
10968
|
-
const lastValue = store.valueMap.get(
|
|
10967
|
+
atom2.cleanup?.();
|
|
10968
|
+
const lastValue = store.valueMap.get(atom2.key);
|
|
10969
10969
|
const subject = withdraw(store, getFamilyOfToken(store, atomToken)).subject;
|
|
10970
10970
|
const disposalEvent = {
|
|
10971
10971
|
type: `state_disposal`,
|
|
@@ -10989,8 +10989,8 @@ function disposeAtom(store, atomToken) {
|
|
|
10989
10989
|
store.logger.info(`\uD83D\uDD25`, `atom`, key, `deleted`);
|
|
10990
10990
|
if (isChild && target.transactionMeta.phase === `building`) {
|
|
10991
10991
|
const mostRecentUpdate = target.transactionMeta.update.subEvents.at(-1);
|
|
10992
|
-
const updateAlreadyCaptured = mostRecentUpdate?.type === `molecule_disposal` && mostRecentUpdate.values.some(([k]) => k ===
|
|
10993
|
-
const isTracker = hasRole(
|
|
10992
|
+
const updateAlreadyCaptured = mostRecentUpdate?.type === `molecule_disposal` && mostRecentUpdate.values.some(([k]) => k === atom2.family?.key);
|
|
10993
|
+
const isTracker = hasRole(atom2, `tracker:signal`);
|
|
10994
10994
|
if (!updateAlreadyCaptured && !isTracker)
|
|
10995
10995
|
target.transactionMeta.update.subEvents.push(disposalEvent);
|
|
10996
10996
|
} else
|
|
@@ -11538,23 +11538,23 @@ var NON_CTOR_FN_REGEX, Future, Subject = class {
|
|
|
11538
11538
|
family.install(this);
|
|
11539
11539
|
}
|
|
11540
11540
|
const mutableHelpers = /* @__PURE__ */ new Set;
|
|
11541
|
-
for (const [,
|
|
11542
|
-
if (mutableHelpers.has(
|
|
11541
|
+
for (const [, atom2] of store.atoms) {
|
|
11542
|
+
if (mutableHelpers.has(atom2.key))
|
|
11543
11543
|
continue;
|
|
11544
|
-
|
|
11545
|
-
if (
|
|
11546
|
-
const originalJsonToken = getJsonToken(store,
|
|
11547
|
-
const originalUpdateToken = getUpdateToken(
|
|
11544
|
+
atom2.install(this);
|
|
11545
|
+
if (atom2.type === `mutable_atom`) {
|
|
11546
|
+
const originalJsonToken = getJsonToken(store, atom2);
|
|
11547
|
+
const originalUpdateToken = getUpdateToken(atom2);
|
|
11548
11548
|
mutableHelpers.add(originalJsonToken.key);
|
|
11549
11549
|
mutableHelpers.add(originalUpdateToken.key);
|
|
11550
11550
|
}
|
|
11551
11551
|
}
|
|
11552
|
-
for (const [,
|
|
11553
|
-
|
|
11554
|
-
for (const [,
|
|
11555
|
-
if (mutableHelpers.has(
|
|
11552
|
+
for (const [, selector2] of store.readonlySelectors)
|
|
11553
|
+
selector2.install(this);
|
|
11554
|
+
for (const [, selector2] of store.writableSelectors) {
|
|
11555
|
+
if (mutableHelpers.has(selector2.key))
|
|
11556
11556
|
continue;
|
|
11557
|
-
|
|
11557
|
+
selector2.install(this);
|
|
11558
11558
|
}
|
|
11559
11559
|
for (const [, tx] of store.transactions)
|
|
11560
11560
|
tx.install(this);
|
|
@@ -11574,26 +11574,26 @@ var NON_CTOR_FN_REGEX, Future, Subject = class {
|
|
|
11574
11574
|
return;
|
|
11575
11575
|
}
|
|
11576
11576
|
store.operation.done.add(key);
|
|
11577
|
-
}, UNSET, setAtom = (target,
|
|
11577
|
+
}, UNSET, setAtom = (target, atom2, next2) => {
|
|
11578
11578
|
let oldValue;
|
|
11579
11579
|
let newValue;
|
|
11580
11580
|
if (isFn(next2)) {
|
|
11581
|
-
const prev = readOrComputeValue(target,
|
|
11581
|
+
const prev = readOrComputeValue(target, atom2, `mut`);
|
|
11582
11582
|
oldValue = prev;
|
|
11583
11583
|
newValue = next2(prev);
|
|
11584
11584
|
} else {
|
|
11585
|
-
if (target.valueMap.has(
|
|
11586
|
-
oldValue = readFromCache(target,
|
|
11587
|
-
else if (
|
|
11588
|
-
oldValue =
|
|
11585
|
+
if (target.valueMap.has(atom2.key))
|
|
11586
|
+
oldValue = readFromCache(target, atom2, `mut`);
|
|
11587
|
+
else if (atom2.type === `atom` && !isFn(atom2.default))
|
|
11588
|
+
oldValue = atom2.default;
|
|
11589
11589
|
else
|
|
11590
11590
|
oldValue = UNSET;
|
|
11591
11591
|
newValue = next2;
|
|
11592
11592
|
}
|
|
11593
|
-
target.logger.info(`\u2B50`, `atom`,
|
|
11594
|
-
newValue = writeToCache(target,
|
|
11595
|
-
markDone(target,
|
|
11596
|
-
evictDownstreamFromAtom(target,
|
|
11593
|
+
target.logger.info(`\u2B50`, `atom`, atom2.key, `setting value`, newValue);
|
|
11594
|
+
newValue = writeToCache(target, atom2, newValue);
|
|
11595
|
+
markDone(target, atom2.key);
|
|
11596
|
+
evictDownstreamFromAtom(target, atom2);
|
|
11597
11597
|
if (oldValue === UNSET)
|
|
11598
11598
|
return { newValue };
|
|
11599
11599
|
return {
|
|
@@ -11618,13 +11618,13 @@ var NON_CTOR_FN_REGEX, Future, Subject = class {
|
|
|
11618
11618
|
if (target.operation.open)
|
|
11619
11619
|
return target.operation.prev.get(state.key);
|
|
11620
11620
|
return target.valueMap.get(state.key);
|
|
11621
|
-
}, subscribeToRootDependency = (target,
|
|
11622
|
-
return
|
|
11623
|
-
target.logger.info(`\uD83D\uDCE2`,
|
|
11624
|
-
const oldValue = recallState(target,
|
|
11625
|
-
const newValue = readOrComputeValue(target,
|
|
11626
|
-
target.logger.info(`\u2728`,
|
|
11627
|
-
|
|
11621
|
+
}, subscribeToRootDependency = (target, selector2, atom2) => {
|
|
11622
|
+
return atom2.subject.subscribe(`${selector2.type}:${selector2.key}`, (atomChange) => {
|
|
11623
|
+
target.logger.info(`\uD83D\uDCE2`, selector2.type, selector2.key, `root`, atom2.key, `went`, atomChange.oldValue, `->`, atomChange.newValue);
|
|
11624
|
+
const oldValue = recallState(target, selector2);
|
|
11625
|
+
const newValue = readOrComputeValue(target, selector2);
|
|
11626
|
+
target.logger.info(`\u2728`, selector2.type, selector2.key, `went`, oldValue, `->`, newValue);
|
|
11627
|
+
selector2.subject.next({
|
|
11628
11628
|
newValue,
|
|
11629
11629
|
oldValue
|
|
11630
11630
|
});
|
|
@@ -11955,26 +11955,26 @@ var init_internal = __esm(() => {
|
|
|
11955
11955
|
if (previousOwner === a)
|
|
11956
11956
|
continue;
|
|
11957
11957
|
let previousOwnerSize;
|
|
11958
|
-
operateOnStore(JOIN_OP, this.store, relatedKeysAtoms, previousOwner, (
|
|
11959
|
-
|
|
11960
|
-
previousOwnerSize =
|
|
11961
|
-
return
|
|
11958
|
+
operateOnStore(JOIN_OP, this.store, relatedKeysAtoms, previousOwner, (relations2) => {
|
|
11959
|
+
relations2.delete(newRelationB);
|
|
11960
|
+
previousOwnerSize = relations2.size;
|
|
11961
|
+
return relations2;
|
|
11962
11962
|
});
|
|
11963
11963
|
if (previousOwnerSize === 0)
|
|
11964
11964
|
previousOwnersToDispose.push(previousOwner);
|
|
11965
11965
|
}
|
|
11966
11966
|
if (!newRelationBIsAlreadyRelated && relationsOfB.size > 0)
|
|
11967
|
-
set(relationsOfBAtom, (
|
|
11968
|
-
|
|
11969
|
-
return
|
|
11967
|
+
set(relationsOfBAtom, (relations2) => {
|
|
11968
|
+
relations2.clear();
|
|
11969
|
+
return relations2;
|
|
11970
11970
|
});
|
|
11971
11971
|
for (const previousOwner of previousOwnersToDispose)
|
|
11972
11972
|
store.keyRefsInJoins.delete(simpleCompound(newRelationB, previousOwner));
|
|
11973
11973
|
}
|
|
11974
11974
|
if (!newRelationBIsAlreadyRelated)
|
|
11975
|
-
set(relationsOfBAtom, (
|
|
11976
|
-
|
|
11977
|
-
return
|
|
11975
|
+
set(relationsOfBAtom, (relations2) => {
|
|
11976
|
+
relations2.add(a);
|
|
11977
|
+
return relations2;
|
|
11978
11978
|
});
|
|
11979
11979
|
relationsOfA.add(newRelationB);
|
|
11980
11980
|
}
|
|
@@ -14730,7 +14730,7 @@ var require_src = __commonJS((exports, module2) => {
|
|
|
14730
14730
|
}
|
|
14731
14731
|
});
|
|
14732
14732
|
|
|
14733
|
-
// ../../node_modules/.pnpm/@t3-oss+env-core@0.13.10_arktype@2.1.29_typescript@5.9.3_zod@4.3.
|
|
14733
|
+
// ../../node_modules/.pnpm/@t3-oss+env-core@0.13.10_arktype@2.1.29_typescript@5.9.3_zod@4.3.6/node_modules/@t3-oss/env-core/dist/standard.js
|
|
14734
14734
|
function ensureSynchronous(value3, message) {
|
|
14735
14735
|
if (value3 instanceof Promise)
|
|
14736
14736
|
throw new Error(message);
|
|
@@ -14757,7 +14757,7 @@ function parseWithDictionary(dictionary, value3) {
|
|
|
14757
14757
|
}
|
|
14758
14758
|
var init_standard = () => {};
|
|
14759
14759
|
|
|
14760
|
-
// ../../node_modules/.pnpm/@t3-oss+env-core@0.13.10_arktype@2.1.29_typescript@5.9.3_zod@4.3.
|
|
14760
|
+
// ../../node_modules/.pnpm/@t3-oss+env-core@0.13.10_arktype@2.1.29_typescript@5.9.3_zod@4.3.6/node_modules/@t3-oss/env-core/dist/index.js
|
|
14761
14761
|
function createEnv(opts) {
|
|
14762
14762
|
const runtimeEnv = opts.runtimeEnvStrict ?? opts.runtimeEnv ?? process.env;
|
|
14763
14763
|
if (opts.emptyStringAsUndefined ?? false) {
|
|
@@ -29097,8 +29097,15 @@ parent.receiveRelay((socket, userKey) => {
|
|
|
29097
29097
|
const stackHeight = getState2(gameTilesStackHeightAtoms, turnInProgress.target);
|
|
29098
29098
|
if (stackHeight >= maximumStackHeight)
|
|
29099
29099
|
return;
|
|
29100
|
+
const { target } = turnInProgress;
|
|
29101
|
+
const newStackHeight = stackHeight + 1;
|
|
29100
29102
|
setState(playerRemainingTilesAtoms, userKey, (n) => n - 1);
|
|
29101
|
-
setState(gameTilesStackHeightAtoms,
|
|
29103
|
+
setState(gameTilesStackHeightAtoms, target, newStackHeight);
|
|
29104
|
+
setState(turnInProgressAtom, {
|
|
29105
|
+
type: `build`,
|
|
29106
|
+
target,
|
|
29107
|
+
count: newStackHeight
|
|
29108
|
+
});
|
|
29102
29109
|
socket.emit(`placeTile`, turnInProgress.target);
|
|
29103
29110
|
}
|
|
29104
29111
|
break;
|
|
@@ -29238,7 +29245,7 @@ parent.receiveRelay((socket, userKey) => {
|
|
|
29238
29245
|
case `build`:
|
|
29239
29246
|
{
|
|
29240
29247
|
const { target, count } = turnInProgress;
|
|
29241
|
-
setState(gameTilesStackHeightAtoms, target,
|
|
29248
|
+
setState(gameTilesStackHeightAtoms, target, 1);
|
|
29242
29249
|
setState(tileCubeCountAtoms, target, 0);
|
|
29243
29250
|
setState(tileOwnerAtoms, target, null);
|
|
29244
29251
|
setState(playerRemainingTilesAtoms, userKey, (n) => n + count);
|