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.
@@ -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 join$1 = target.joins.get(joinKey);
9127
- if (join$1)
9128
- join$1.relations.delete(claim);
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 join$1 = target.joins.get(joinKey);
9137
- if (join$1)
9138
- join$1.relations.delete(a, b);
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 atomFamily$1 = {
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, atomFamily$1);
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 selectorFamily$1 = {
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, selectorFamily$1);
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 selectorFamily$1 = {
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, selectorFamily$1);
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, atom$1) {
10165
- switch (atom$1.type) {
10164
+ function resetAtom(target, atom2) {
10165
+ switch (atom2.type) {
10166
10166
  case `mutable_atom`:
10167
- return setAtom(target, atom$1, new atom$1.class);
10167
+ return setAtom(target, atom2, new atom2.class);
10168
10168
  case `atom`: {
10169
10169
  let def;
10170
- if (isFn(atom$1.default))
10171
- def = safeCompute(target, atom$1);
10170
+ if (isFn(atom2.default))
10171
+ def = safeCompute(target, atom2);
10172
10172
  else
10173
- def = atom$1.default;
10174
- return setAtom(target, atom$1, def);
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 atom$1 of atoms.values())
10189
- dispatchOrDeferStateUpdate(target, state, resetAtom(target, atom$1), false);
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 atom$1 of atoms.values())
10202
- dispatchOrDeferStateUpdate(target, state, resetAtom(target, atom$1), false);
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, selector$1, next2) {
10218
+ function setSelector(target, selector2, next2) {
10219
10219
  let oldValue;
10220
10220
  let newValue;
10221
10221
  let constant;
10222
- const { type: type2, key } = selector$1;
10223
- switch (selector$1.type) {
10222
+ const { type: type2, key } = selector2;
10223
+ switch (selector2.type) {
10224
10224
  case `writable_pure_selector`:
10225
- oldValue = readOrComputeValue(target, selector$1, `mut`);
10225
+ oldValue = readOrComputeValue(target, selector2, `mut`);
10226
10226
  newValue = become(next2, oldValue);
10227
- newValue = writeToCache(target, selector$1, newValue);
10227
+ newValue = writeToCache(target, selector2, newValue);
10228
10228
  break;
10229
10229
  case `writable_held_selector`:
10230
- constant = selector$1.const;
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
- selector$1.setSelf(newValue);
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 atom$1 = store.atoms.get(dependencyKey);
10317
- roots.set(atom$1.key, atom$1);
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 state$1 = createWritableHeldSelector(store, options, undefined);
10563
- store.on.selectorCreation.next(state$1);
10564
- return state$1;
10562
+ const state2 = createWritableHeldSelector(store, options, undefined);
10563
+ store.on.selectorCreation.next(state2);
10564
+ return state2;
10565
10565
  }
10566
10566
  if (isHeld) {
10567
- const state$1 = createReadonlyHeldSelector(store, options, undefined);
10568
- store.on.selectorCreation.next(state$1);
10569
- return state$1;
10567
+ const state2 = createReadonlyHeldSelector(store, options, undefined);
10568
+ store.on.selectorCreation.next(state2);
10569
+ return state2;
10570
10570
  }
10571
10571
  if (isWritable) {
10572
- const state$1 = createWritablePureSelector(store, options, undefined);
10573
- store.on.selectorCreation.next(state$1);
10574
- return state$1;
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, atom$1] of traceRootSelectorAtoms(store, state.key))
10674
- rootSubs.set(atomKey, subscribeToRootDependency(store, state, atom$1));
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, atom$1] of dependencies)
10685
- rootSubs.set(atomKey, subscribeToRootDependency(store, state, atom$1));
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 atomFamily$1 = {
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, atomFamily$1);
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(atomFamily$1, store);
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 mutableAtom$1 = state;
10852
+ const mutableAtom2 = state;
10853
10853
  const { parent } = target;
10854
- if (target.valueMap.hasOwn(mutableAtom$1.key))
10854
+ if (target.valueMap.hasOwn(mutableAtom2.key))
10855
10855
  return value2;
10856
- const parentValue = parent.valueMap.get(mutableAtom$1.key);
10857
- target.logger.info(`\uD83D\uDCC3`, `atom`, mutableAtom$1.key, `copying`);
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 = mutableAtom$1.class.fromJSON(jsonValue);
10860
- target.valueMap.set(mutableAtom$1.key, copiedValue);
10861
- new Tracker(mutableAtom$1, parent);
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, atom$1) {
10875
+ function evictDownstreamFromAtom(store, atom2) {
10876
10876
  const target = newest(store);
10877
- const { key, type: type2 } = atom$1;
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(atom$1, role) {
10956
- if (`internalRoles` in atom$1 === false)
10955
+ function hasRole(atom2, role) {
10956
+ if (`internalRoles` in atom2 === false)
10957
10957
  return false;
10958
- return atom$1.internalRoles.includes(role);
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 atom$1 = withdraw(target, atomToken);
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
- atom$1.cleanup?.();
10968
- const lastValue = store.valueMap.get(atom$1.key);
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 === atom$1.family?.key);
10993
- const isTracker = hasRole(atom$1, `tracker:signal`);
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 [, atom$1] of store.atoms) {
11542
- if (mutableHelpers.has(atom$1.key))
11541
+ for (const [, atom2] of store.atoms) {
11542
+ if (mutableHelpers.has(atom2.key))
11543
11543
  continue;
11544
- atom$1.install(this);
11545
- if (atom$1.type === `mutable_atom`) {
11546
- const originalJsonToken = getJsonToken(store, atom$1);
11547
- const originalUpdateToken = getUpdateToken(atom$1);
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 [, selector$1] of store.readonlySelectors)
11553
- selector$1.install(this);
11554
- for (const [, selector$1] of store.writableSelectors) {
11555
- if (mutableHelpers.has(selector$1.key))
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
- selector$1.install(this);
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, atom$1, next2) => {
11577
+ }, UNSET, setAtom = (target, atom2, next2) => {
11578
11578
  let oldValue;
11579
11579
  let newValue;
11580
11580
  if (isFn(next2)) {
11581
- const prev = readOrComputeValue(target, atom$1, `mut`);
11581
+ const prev = readOrComputeValue(target, atom2, `mut`);
11582
11582
  oldValue = prev;
11583
11583
  newValue = next2(prev);
11584
11584
  } else {
11585
- if (target.valueMap.has(atom$1.key))
11586
- oldValue = readFromCache(target, atom$1, `mut`);
11587
- else if (atom$1.type === `atom` && !isFn(atom$1.default))
11588
- oldValue = atom$1.default;
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`, atom$1.key, `setting value`, newValue);
11594
- newValue = writeToCache(target, atom$1, newValue);
11595
- markDone(target, atom$1.key);
11596
- evictDownstreamFromAtom(target, atom$1);
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, selector$1, atom$1) => {
11622
- return atom$1.subject.subscribe(`${selector$1.type}:${selector$1.key}`, (atomChange) => {
11623
- target.logger.info(`\uD83D\uDCE2`, selector$1.type, selector$1.key, `root`, atom$1.key, `went`, atomChange.oldValue, `->`, atomChange.newValue);
11624
- const oldValue = recallState(target, selector$1);
11625
- const newValue = readOrComputeValue(target, selector$1);
11626
- target.logger.info(`\u2728`, selector$1.type, selector$1.key, `went`, oldValue, `->`, newValue);
11627
- selector$1.subject.next({
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, (relations$1) => {
11959
- relations$1.delete(newRelationB);
11960
- previousOwnerSize = relations$1.size;
11961
- return relations$1;
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, (relations$1) => {
11968
- relations$1.clear();
11969
- return relations$1;
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, (relations$1) => {
11976
- relations$1.add(a);
11977
- return relations$1;
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.5/node_modules/@t3-oss/env-core/dist/standard.js
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.5/node_modules/@t3-oss/env-core/dist/index.js
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, turnInProgress.target, stackHeight + 1);
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, 0);
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);