tempest.games 0.2.100 → 0.2.101
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 +11 -0
- package/app/assets/{index-BLzwxFXa.js → index-CmrgJmXA.js} +27 -27
- package/app/index.html +1 -1
- package/bin/backend.bun.js +108 -91
- package/bin/backend.worker.game.bun.js +13 -9
- package/bin/backend.worker.tribunal.bun.js +13 -9
- package/bin/frontend.bun.js +13 -9
- package/package.json +5 -5
package/app/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>TEMPEST</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-CmrgJmXA.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-DZ_4vJcE.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
package/bin/backend.bun.js
CHANGED
|
@@ -45817,7 +45817,52 @@ for (const e of _i) {
|
|
|
45817
45817
|
(t2.configurable || t2.enumerable || t2.writable) && (t2.configurable = false, t2.enumerable = false, t2.writable = false, Object.defineProperty(e, "prototype", t2));
|
|
45818
45818
|
}
|
|
45819
45819
|
|
|
45820
|
-
// ../../node_modules/.pnpm/@trpc+server@11.8.
|
|
45820
|
+
// ../../node_modules/.pnpm/@trpc+server@11.8.1_typescript@5.9.3/node_modules/@trpc/server/dist/codes-DagpWZLc.mjs
|
|
45821
|
+
function mergeWithoutOverrides(obj1, ...objs) {
|
|
45822
|
+
const newObj = Object.assign(emptyObject(), obj1);
|
|
45823
|
+
for (const overrides of objs)
|
|
45824
|
+
for (const key in overrides) {
|
|
45825
|
+
if (key in newObj && newObj[key] !== overrides[key])
|
|
45826
|
+
throw new Error(`Duplicate key ${key}`);
|
|
45827
|
+
newObj[key] = overrides[key];
|
|
45828
|
+
}
|
|
45829
|
+
return newObj;
|
|
45830
|
+
}
|
|
45831
|
+
function isObject(value) {
|
|
45832
|
+
return !!value && !Array.isArray(value) && typeof value === "object";
|
|
45833
|
+
}
|
|
45834
|
+
function isFunction(fn2) {
|
|
45835
|
+
return typeof fn2 === "function";
|
|
45836
|
+
}
|
|
45837
|
+
function emptyObject() {
|
|
45838
|
+
return Object.create(null);
|
|
45839
|
+
}
|
|
45840
|
+
var asyncIteratorsSupported = typeof Symbol === "function" && !!Symbol.asyncIterator;
|
|
45841
|
+
function isAsyncIterable(value) {
|
|
45842
|
+
return asyncIteratorsSupported && isObject(value) && Symbol.asyncIterator in value;
|
|
45843
|
+
}
|
|
45844
|
+
var run = (fn2) => fn2();
|
|
45845
|
+
function identity(it2) {
|
|
45846
|
+
return it2;
|
|
45847
|
+
}
|
|
45848
|
+
function abortSignalsAnyPonyfill(signals) {
|
|
45849
|
+
if (typeof AbortSignal.any === "function")
|
|
45850
|
+
return AbortSignal.any(signals);
|
|
45851
|
+
const ac = new AbortController;
|
|
45852
|
+
for (const signal of signals) {
|
|
45853
|
+
if (signal.aborted) {
|
|
45854
|
+
trigger();
|
|
45855
|
+
break;
|
|
45856
|
+
}
|
|
45857
|
+
signal.addEventListener("abort", trigger, { once: true });
|
|
45858
|
+
}
|
|
45859
|
+
return ac.signal;
|
|
45860
|
+
function trigger() {
|
|
45861
|
+
ac.abort();
|
|
45862
|
+
for (const signal of signals)
|
|
45863
|
+
signal.removeEventListener("abort", trigger);
|
|
45864
|
+
}
|
|
45865
|
+
}
|
|
45821
45866
|
var TRPC_ERROR_CODES_BY_KEY = {
|
|
45822
45867
|
PARSE_ERROR: -32700,
|
|
45823
45868
|
BAD_REQUEST: -32600,
|
|
@@ -45866,35 +45911,8 @@ var retryableRpcCodes = [
|
|
|
45866
45911
|
TRPC_ERROR_CODES_BY_KEY.GATEWAY_TIMEOUT,
|
|
45867
45912
|
TRPC_ERROR_CODES_BY_KEY.INTERNAL_SERVER_ERROR
|
|
45868
45913
|
];
|
|
45869
|
-
function mergeWithoutOverrides(obj1, ...objs) {
|
|
45870
|
-
const newObj = Object.assign(Object.create(null), obj1);
|
|
45871
|
-
for (const overrides of objs)
|
|
45872
|
-
for (const key in overrides) {
|
|
45873
|
-
if (key in newObj && newObj[key] !== overrides[key])
|
|
45874
|
-
throw new Error(`Duplicate key ${key}`);
|
|
45875
|
-
newObj[key] = overrides[key];
|
|
45876
|
-
}
|
|
45877
|
-
return newObj;
|
|
45878
|
-
}
|
|
45879
|
-
function isObject(value) {
|
|
45880
|
-
return !!value && !Array.isArray(value) && typeof value === "object";
|
|
45881
|
-
}
|
|
45882
|
-
function isFunction(fn2) {
|
|
45883
|
-
return typeof fn2 === "function";
|
|
45884
|
-
}
|
|
45885
|
-
function omitPrototype(obj) {
|
|
45886
|
-
return Object.assign(Object.create(null), obj);
|
|
45887
|
-
}
|
|
45888
|
-
var asyncIteratorsSupported = typeof Symbol === "function" && !!Symbol.asyncIterator;
|
|
45889
|
-
function isAsyncIterable(value) {
|
|
45890
|
-
return asyncIteratorsSupported && isObject(value) && Symbol.asyncIterator in value;
|
|
45891
|
-
}
|
|
45892
|
-
var run = (fn2) => fn2();
|
|
45893
|
-
function identity(it2) {
|
|
45894
|
-
return it2;
|
|
45895
|
-
}
|
|
45896
45914
|
|
|
45897
|
-
// ../../node_modules/.pnpm/@trpc+server@11.8.
|
|
45915
|
+
// ../../node_modules/.pnpm/@trpc+server@11.8.1_typescript@5.9.3/node_modules/@trpc/server/dist/getErrorShape-vC8mUXJD.mjs
|
|
45898
45916
|
var __create2 = Object.create;
|
|
45899
45917
|
var __defProp2 = Object.defineProperty;
|
|
45900
45918
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -45957,7 +45975,7 @@ function createInnerProxy(callback, path, memo) {
|
|
|
45957
45975
|
}));
|
|
45958
45976
|
return memo[cacheKey];
|
|
45959
45977
|
}
|
|
45960
|
-
var createRecursiveProxy = (callback) => createInnerProxy(callback, [],
|
|
45978
|
+
var createRecursiveProxy = (callback) => createInnerProxy(callback, [], emptyObject());
|
|
45961
45979
|
var JSONRPC2_TO_HTTP_CODE = {
|
|
45962
45980
|
PARSE_ERROR: 400,
|
|
45963
45981
|
BAD_REQUEST: 400,
|
|
@@ -46097,7 +46115,7 @@ function getErrorShape(opts) {
|
|
|
46097
46115
|
return config.errorFormatter((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, { shape }));
|
|
46098
46116
|
}
|
|
46099
46117
|
|
|
46100
|
-
// ../../node_modules/.pnpm/@trpc+server@11.8.
|
|
46118
|
+
// ../../node_modules/.pnpm/@trpc+server@11.8.1_typescript@5.9.3/node_modules/@trpc/server/dist/tracked-D4V22yc5.mjs
|
|
46101
46119
|
var defaultFormatter = ({ shape }) => {
|
|
46102
46120
|
return shape;
|
|
46103
46121
|
};
|
|
@@ -46208,8 +46226,8 @@ function createRouterFactory(config) {
|
|
|
46208
46226
|
const reservedWordsUsed = new Set(Object.keys(input).filter((v2) => reservedWords.includes(v2)));
|
|
46209
46227
|
if (reservedWordsUsed.size > 0)
|
|
46210
46228
|
throw new Error("Reserved words used in `router({})` call: " + Array.from(reservedWordsUsed).join(", "));
|
|
46211
|
-
const procedures =
|
|
46212
|
-
const lazy$1 =
|
|
46229
|
+
const procedures = emptyObject();
|
|
46230
|
+
const lazy$1 = emptyObject();
|
|
46213
46231
|
function createLazyLoader(opts) {
|
|
46214
46232
|
return {
|
|
46215
46233
|
ref: opts.ref,
|
|
@@ -46232,7 +46250,7 @@ function createRouterFactory(config) {
|
|
|
46232
46250
|
};
|
|
46233
46251
|
}
|
|
46234
46252
|
function step(from, path = []) {
|
|
46235
|
-
const aggregate =
|
|
46253
|
+
const aggregate = emptyObject();
|
|
46236
46254
|
for (const [key, item] of Object.entries(from !== null && from !== undefined ? from : {})) {
|
|
46237
46255
|
if (isLazy(item)) {
|
|
46238
46256
|
lazy$1[[...path, key].join(".")] = createLazyLoader({
|
|
@@ -46365,7 +46383,7 @@ function isTrackedEnvelope(value) {
|
|
|
46365
46383
|
return Array.isArray(value) && value[2] === trackedSymbol;
|
|
46366
46384
|
}
|
|
46367
46385
|
|
|
46368
|
-
// ../../node_modules/.pnpm/@trpc+server@11.8.
|
|
46386
|
+
// ../../node_modules/.pnpm/@trpc+server@11.8.1_typescript@5.9.3/node_modules/@trpc/server/dist/observable-UMO3vUa_.mjs
|
|
46369
46387
|
function isObservable(x2) {
|
|
46370
46388
|
return typeof x2 === "object" && x2 !== null && "subscribe" in x2;
|
|
46371
46389
|
}
|
|
@@ -46438,7 +46456,7 @@ function observableToAsyncIterable(observable$1, signal) {
|
|
|
46438
46456
|
} };
|
|
46439
46457
|
}
|
|
46440
46458
|
|
|
46441
|
-
// ../../node_modules/.pnpm/@trpc+server@11.8.
|
|
46459
|
+
// ../../node_modules/.pnpm/@trpc+server@11.8.1_typescript@5.9.3/node_modules/@trpc/server/dist/resolveResponse-C7AcnFLN.mjs
|
|
46442
46460
|
function parseConnectionParamsFromUnknown(parsed) {
|
|
46443
46461
|
try {
|
|
46444
46462
|
if (parsed === null)
|
|
@@ -46517,15 +46535,18 @@ var jsonContentTypeHandler = {
|
|
|
46517
46535
|
} else
|
|
46518
46536
|
inputs = await req.json();
|
|
46519
46537
|
if (inputs === undefined)
|
|
46520
|
-
return
|
|
46521
|
-
if (!isBatchCall)
|
|
46522
|
-
|
|
46538
|
+
return emptyObject();
|
|
46539
|
+
if (!isBatchCall) {
|
|
46540
|
+
const result = emptyObject();
|
|
46541
|
+
result[0] = opts.router._def._config.transformer.input.deserialize(inputs);
|
|
46542
|
+
return result;
|
|
46543
|
+
}
|
|
46523
46544
|
if (!isObject(inputs))
|
|
46524
46545
|
throw new TRPCError({
|
|
46525
46546
|
code: "BAD_REQUEST",
|
|
46526
46547
|
message: '"input" needs to be an object when doing a batch call'
|
|
46527
46548
|
});
|
|
46528
|
-
const acc =
|
|
46549
|
+
const acc = emptyObject();
|
|
46529
46550
|
for (const index of paths.keys()) {
|
|
46530
46551
|
const input = inputs[index];
|
|
46531
46552
|
if (input !== undefined)
|
|
@@ -47053,44 +47074,16 @@ function iteratorResource(iterable) {
|
|
|
47053
47074
|
await ((_iterator$return = iterator.return) === null || _iterator$return === undefined ? undefined : _iterator$return.call(iterator));
|
|
47054
47075
|
});
|
|
47055
47076
|
}
|
|
47056
|
-
function
|
|
47057
|
-
return _withMaxDuration.apply(this, arguments);
|
|
47058
|
-
}
|
|
47059
|
-
function _withMaxDuration() {
|
|
47060
|
-
_withMaxDuration = (0, import_wrapAsyncGenerator$5.default)(function* (iterable, opts) {
|
|
47061
|
-
try {
|
|
47062
|
-
var _usingCtx$1 = (0, import_usingCtx$4.default)();
|
|
47063
|
-
const iterator = _usingCtx$1.a(iteratorResource(iterable));
|
|
47064
|
-
const timer = _usingCtx$1.u(timerResource(opts.maxDurationMs));
|
|
47065
|
-
const timerPromise = timer.start();
|
|
47066
|
-
let result;
|
|
47067
|
-
while (true) {
|
|
47068
|
-
result = yield (0, import_awaitAsyncGenerator$4.default)(Unpromise.race([iterator.next(), timerPromise]));
|
|
47069
|
-
if (result === disposablePromiseTimerResult)
|
|
47070
|
-
throwAbortError();
|
|
47071
|
-
if (result.done)
|
|
47072
|
-
return result;
|
|
47073
|
-
yield result.value;
|
|
47074
|
-
result = null;
|
|
47075
|
-
}
|
|
47076
|
-
} catch (_2) {
|
|
47077
|
-
_usingCtx$1.e = _2;
|
|
47078
|
-
} finally {
|
|
47079
|
-
yield (0, import_awaitAsyncGenerator$4.default)(_usingCtx$1.d());
|
|
47080
|
-
}
|
|
47081
|
-
});
|
|
47082
|
-
return _withMaxDuration.apply(this, arguments);
|
|
47083
|
-
}
|
|
47084
|
-
function takeWithGrace(_x3, _x4) {
|
|
47077
|
+
function takeWithGrace(_x, _x2) {
|
|
47085
47078
|
return _takeWithGrace.apply(this, arguments);
|
|
47086
47079
|
}
|
|
47087
47080
|
function _takeWithGrace() {
|
|
47088
47081
|
_takeWithGrace = (0, import_wrapAsyncGenerator$5.default)(function* (iterable, opts) {
|
|
47089
47082
|
try {
|
|
47090
|
-
var
|
|
47091
|
-
const iterator =
|
|
47083
|
+
var _usingCtx$1 = (0, import_usingCtx$4.default)();
|
|
47084
|
+
const iterator = _usingCtx$1.a(iteratorResource(iterable));
|
|
47092
47085
|
let result;
|
|
47093
|
-
const timer =
|
|
47086
|
+
const timer = _usingCtx$1.u(timerResource(opts.gracePeriodMs));
|
|
47094
47087
|
let count = opts.count;
|
|
47095
47088
|
let timerPromise = new Promise(() => {});
|
|
47096
47089
|
while (true) {
|
|
@@ -47105,9 +47098,9 @@ function _takeWithGrace() {
|
|
|
47105
47098
|
result = null;
|
|
47106
47099
|
}
|
|
47107
47100
|
} catch (_2) {
|
|
47108
|
-
|
|
47101
|
+
_usingCtx$1.e = _2;
|
|
47109
47102
|
} finally {
|
|
47110
|
-
yield (0, import_awaitAsyncGenerator$4.default)(
|
|
47103
|
+
yield (0, import_awaitAsyncGenerator$4.default)(_usingCtx$1.d());
|
|
47111
47104
|
}
|
|
47112
47105
|
});
|
|
47113
47106
|
return _takeWithGrace.apply(this, arguments);
|
|
@@ -47520,7 +47513,7 @@ function _createBatchStreamProducer() {
|
|
|
47520
47513
|
return [[placeholder], [null, ...reg]];
|
|
47521
47514
|
if (!isPlainObject(value))
|
|
47522
47515
|
return [[value]];
|
|
47523
|
-
const newObj =
|
|
47516
|
+
const newObj = emptyObject();
|
|
47524
47517
|
const asyncValues = [];
|
|
47525
47518
|
for (const [key, item] of Object.entries(value)) {
|
|
47526
47519
|
const transformed = encodeAsync(item, [...path, key]);
|
|
@@ -47533,7 +47526,7 @@ function _createBatchStreamProducer() {
|
|
|
47533
47526
|
}
|
|
47534
47527
|
return [[newObj], ...asyncValues];
|
|
47535
47528
|
}
|
|
47536
|
-
const newHead =
|
|
47529
|
+
const newHead = emptyObject();
|
|
47537
47530
|
for (const [key, item] of Object.entries(data))
|
|
47538
47531
|
newHead[key] = encode(item, [key]);
|
|
47539
47532
|
yield newHead;
|
|
@@ -47641,8 +47634,6 @@ function sseStreamProducer(opts) {
|
|
|
47641
47634
|
count: 1,
|
|
47642
47635
|
gracePeriodMs: 1
|
|
47643
47636
|
});
|
|
47644
|
-
if (opts.maxDurationMs && opts.maxDurationMs > 0 && opts.maxDurationMs !== Infinity)
|
|
47645
|
-
iterable = withMaxDuration(iterable, { maxDurationMs: opts.maxDurationMs });
|
|
47646
47637
|
if (ping.enabled && ping.intervalMs !== Infinity && ping.intervalMs > 0)
|
|
47647
47638
|
iterable = withPing(iterable, ping.intervalMs);
|
|
47648
47639
|
let value;
|
|
@@ -47743,6 +47734,14 @@ function errorToAsyncIterable(err) {
|
|
|
47743
47734
|
throw err;
|
|
47744
47735
|
}));
|
|
47745
47736
|
}
|
|
47737
|
+
function combinedAbortController(signal) {
|
|
47738
|
+
const controller = new AbortController;
|
|
47739
|
+
const combinedSignal = abortSignalsAnyPonyfill([signal, controller.signal]);
|
|
47740
|
+
return {
|
|
47741
|
+
signal: combinedSignal,
|
|
47742
|
+
controller
|
|
47743
|
+
};
|
|
47744
|
+
}
|
|
47746
47745
|
var TYPE_ACCEPTED_METHOD_MAP = {
|
|
47747
47746
|
mutation: ["POST"],
|
|
47748
47747
|
query: ["GET"],
|
|
@@ -47891,6 +47890,7 @@ async function resolveResponse(opts) {
|
|
|
47891
47890
|
await ctxManager.create(info);
|
|
47892
47891
|
const rpcCalls = info.calls.map(async (call) => {
|
|
47893
47892
|
const proc = call.procedure;
|
|
47893
|
+
const combinedAbort = combinedAbortController(opts.req.signal);
|
|
47894
47894
|
try {
|
|
47895
47895
|
if (opts.error)
|
|
47896
47896
|
throw opts.error;
|
|
@@ -47905,18 +47905,28 @@ async function resolveResponse(opts) {
|
|
|
47905
47905
|
message: `Unsupported ${req.method}-request to ${proc._def.type} procedure at path "${call.path}"`
|
|
47906
47906
|
});
|
|
47907
47907
|
if (proc._def.type === "subscription") {
|
|
47908
|
+
var _config$sse2;
|
|
47908
47909
|
if (info.isBatchCall)
|
|
47909
47910
|
throw new TRPCError({
|
|
47910
47911
|
code: "BAD_REQUEST",
|
|
47911
47912
|
message: `Cannot batch subscription calls`
|
|
47912
47913
|
});
|
|
47914
|
+
if ((_config$sse2 = config.sse) === null || _config$sse2 === undefined ? undefined : _config$sse2.maxDurationMs) {
|
|
47915
|
+
let cleanup = function() {
|
|
47916
|
+
clearTimeout(timer);
|
|
47917
|
+
combinedAbort.signal.removeEventListener("abort", cleanup);
|
|
47918
|
+
combinedAbort.controller.abort();
|
|
47919
|
+
};
|
|
47920
|
+
const timer = setTimeout(cleanup, config.sse.maxDurationMs);
|
|
47921
|
+
combinedAbort.signal.addEventListener("abort", cleanup);
|
|
47922
|
+
}
|
|
47913
47923
|
}
|
|
47914
47924
|
const data = await proc({
|
|
47915
47925
|
path: call.path,
|
|
47916
47926
|
getRawInput: call.getRawInput,
|
|
47917
47927
|
ctx: ctxManager.value(),
|
|
47918
47928
|
type: proc._def.type,
|
|
47919
|
-
signal:
|
|
47929
|
+
signal: combinedAbort.signal
|
|
47920
47930
|
});
|
|
47921
47931
|
return [undefined, { data }];
|
|
47922
47932
|
} catch (cause) {
|
|
@@ -48159,7 +48169,7 @@ async function resolveResponse(opts) {
|
|
|
48159
48169
|
}
|
|
48160
48170
|
}
|
|
48161
48171
|
|
|
48162
|
-
// ../../node_modules/.pnpm/@trpc+server@11.8.
|
|
48172
|
+
// ../../node_modules/.pnpm/@trpc+server@11.8.1_typescript@5.9.3/node_modules/@trpc/server/dist/initTRPC-T5bbc89W.mjs
|
|
48163
48173
|
var import_objectSpread2$2 = __toESM2(require_objectSpread2(), 1);
|
|
48164
48174
|
var middlewareMarker = "middlewareMarker";
|
|
48165
48175
|
function createMiddlewareFactory() {
|
|
@@ -48469,13 +48479,16 @@ var TRPCBuilder = class TRPCBuilder2 {
|
|
|
48469
48479
|
};
|
|
48470
48480
|
var initTRPC = new TRPCBuilder;
|
|
48471
48481
|
|
|
48472
|
-
// ../../node_modules/.pnpm/@trpc+server@11.8.
|
|
48482
|
+
// ../../node_modules/.pnpm/@trpc+server@11.8.1_typescript@5.9.3/node_modules/@trpc/server/dist/node-http-pD5xpNfK.mjs
|
|
48483
|
+
import { IncomingMessage } from "http";
|
|
48473
48484
|
function createBody(req, opts) {
|
|
48474
48485
|
if ("body" in req) {
|
|
48475
48486
|
if (req.body === undefined)
|
|
48476
48487
|
return;
|
|
48477
48488
|
if (typeof req.body === "string")
|
|
48478
48489
|
return req.body;
|
|
48490
|
+
if (req.body instanceof IncomingMessage)
|
|
48491
|
+
return req.body;
|
|
48479
48492
|
return JSON.stringify(req.body);
|
|
48480
48493
|
}
|
|
48481
48494
|
let size = 0;
|
|
@@ -48675,7 +48688,7 @@ async function nodeHTTPRequestHandler(opts) {
|
|
|
48675
48688
|
});
|
|
48676
48689
|
}
|
|
48677
48690
|
|
|
48678
|
-
// ../../node_modules/.pnpm/@trpc+server@11.8.
|
|
48691
|
+
// ../../node_modules/.pnpm/@trpc+server@11.8.1_typescript@5.9.3/node_modules/@trpc/server/dist/adapters/standalone.mjs
|
|
48679
48692
|
var import_objectSpread26 = __toESM2(require_objectSpread2(), 1);
|
|
48680
48693
|
function createHandler(opts) {
|
|
48681
48694
|
var _opts$basePath;
|
|
@@ -60189,32 +60202,34 @@ var ParentSocket = class extends CustomSocket {
|
|
|
60189
60202
|
this.id = this.proc.pid?.toString();
|
|
60190
60203
|
this.on(`user-joins`, (userKey) => {
|
|
60191
60204
|
this.logger.info(`\uD83D\uDC64`, userKey, `joined`);
|
|
60205
|
+
if (this.relays.get(userKey))
|
|
60206
|
+
return;
|
|
60192
60207
|
const relay = new SubjectSocket(userKey);
|
|
60193
60208
|
this.relays.set(userKey, relay);
|
|
60194
|
-
this.logger.info(`\uD83D\uDD17`, `attaching services for
|
|
60209
|
+
this.logger.info(`\uD83D\uDD17`, `attaching relay services for`, userKey);
|
|
60195
60210
|
const cleanupRelay = this.initRelay(relay, userKey);
|
|
60196
60211
|
if (cleanupRelay)
|
|
60197
60212
|
relay.disposalFunctions.push(cleanupRelay);
|
|
60198
60213
|
this.on(userKey, (...data) => {
|
|
60199
60214
|
relay.in.next(data);
|
|
60200
60215
|
});
|
|
60201
|
-
relay.out.subscribe(`socket`, (data) => {
|
|
60202
|
-
this.emit(...data);
|
|
60203
|
-
});
|
|
60216
|
+
relay.disposalFunctions.push(relay.out.subscribe(`socket`, (data) => {
|
|
60217
|
+
this.emit(userKey, ...data);
|
|
60218
|
+
}));
|
|
60204
60219
|
});
|
|
60205
|
-
this.on(`user-leaves`, (
|
|
60206
|
-
const relay = this.relays.get(
|
|
60207
|
-
this.off(
|
|
60220
|
+
this.on(`user-leaves`, (userKey) => {
|
|
60221
|
+
const relay = this.relays.get(userKey);
|
|
60222
|
+
this.off(userKey);
|
|
60208
60223
|
if (relay) {
|
|
60209
60224
|
relay.dispose();
|
|
60210
|
-
this.relays.delete(
|
|
60225
|
+
this.relays.delete(userKey);
|
|
60211
60226
|
}
|
|
60212
60227
|
});
|
|
60213
60228
|
this.proc.stdout.write(PROOF_OF_LIFE_SIGNAL);
|
|
60214
60229
|
}
|
|
60215
60230
|
receiveRelay(attachServices) {
|
|
60216
|
-
this.logger.info(`\uD83D\uDD17`, `running relay method`);
|
|
60217
60231
|
this.initRelay = attachServices;
|
|
60232
|
+
this.logger.info(`\uD83D\uDD17`, `ready to relay`);
|
|
60218
60233
|
}
|
|
60219
60234
|
};
|
|
60220
60235
|
var ChildSocket = class extends CustomSocket {
|
|
@@ -60278,6 +60293,7 @@ var ChildSocket = class extends CustomSocket {
|
|
|
60278
60293
|
continue;
|
|
60279
60294
|
try {
|
|
60280
60295
|
const jsonPiece = parseJson(piece);
|
|
60296
|
+
this.logger.info(`\uD83D\uDCB8`, `emitted`, jsonPiece);
|
|
60281
60297
|
this.handleEvent(...jsonPiece);
|
|
60282
60298
|
this.incompleteData = ``;
|
|
60283
60299
|
} catch (thrown0) {
|
|
@@ -60296,6 +60312,7 @@ var ChildSocket = class extends CustomSocket {
|
|
|
60296
60312
|
if (idx === 0) {
|
|
60297
60313
|
this.incompleteData = piece;
|
|
60298
60314
|
const maybeActualJsonPiece = parseJson(initialMaybeWellFormed);
|
|
60315
|
+
this.logger.info(`\uD83D\uDCB8`, `emitted`, maybeActualJsonPiece);
|
|
60299
60316
|
this.handleEvent(...maybeActualJsonPiece);
|
|
60300
60317
|
this.incompleteData = ``;
|
|
60301
60318
|
} else
|
|
@@ -3157,32 +3157,34 @@ var ParentSocket = class extends CustomSocket {
|
|
|
3157
3157
|
this.id = this.proc.pid?.toString();
|
|
3158
3158
|
this.on(`user-joins`, (userKey) => {
|
|
3159
3159
|
this.logger.info(`\uD83D\uDC64`, userKey, `joined`);
|
|
3160
|
+
if (this.relays.get(userKey))
|
|
3161
|
+
return;
|
|
3160
3162
|
const relay = new SubjectSocket(userKey);
|
|
3161
3163
|
this.relays.set(userKey, relay);
|
|
3162
|
-
this.logger.info(`\uD83D\uDD17`, `attaching services for
|
|
3164
|
+
this.logger.info(`\uD83D\uDD17`, `attaching relay services for`, userKey);
|
|
3163
3165
|
const cleanupRelay = this.initRelay(relay, userKey);
|
|
3164
3166
|
if (cleanupRelay)
|
|
3165
3167
|
relay.disposalFunctions.push(cleanupRelay);
|
|
3166
3168
|
this.on(userKey, (...data) => {
|
|
3167
3169
|
relay.in.next(data);
|
|
3168
3170
|
});
|
|
3169
|
-
relay.out.subscribe(`socket`, (data) => {
|
|
3170
|
-
this.emit(...data);
|
|
3171
|
-
});
|
|
3171
|
+
relay.disposalFunctions.push(relay.out.subscribe(`socket`, (data) => {
|
|
3172
|
+
this.emit(userKey, ...data);
|
|
3173
|
+
}));
|
|
3172
3174
|
});
|
|
3173
|
-
this.on(`user-leaves`, (
|
|
3174
|
-
const relay = this.relays.get(
|
|
3175
|
-
this.off(
|
|
3175
|
+
this.on(`user-leaves`, (userKey) => {
|
|
3176
|
+
const relay = this.relays.get(userKey);
|
|
3177
|
+
this.off(userKey);
|
|
3176
3178
|
if (relay) {
|
|
3177
3179
|
relay.dispose();
|
|
3178
|
-
this.relays.delete(
|
|
3180
|
+
this.relays.delete(userKey);
|
|
3179
3181
|
}
|
|
3180
3182
|
});
|
|
3181
3183
|
this.proc.stdout.write(PROOF_OF_LIFE_SIGNAL);
|
|
3182
3184
|
}
|
|
3183
3185
|
receiveRelay(attachServices) {
|
|
3184
|
-
this.logger.info(`\uD83D\uDD17`, `running relay method`);
|
|
3185
3186
|
this.initRelay = attachServices;
|
|
3187
|
+
this.logger.info(`\uD83D\uDD17`, `ready to relay`);
|
|
3186
3188
|
}
|
|
3187
3189
|
};
|
|
3188
3190
|
var ChildSocket = class extends CustomSocket {
|
|
@@ -3246,6 +3248,7 @@ var ChildSocket = class extends CustomSocket {
|
|
|
3246
3248
|
continue;
|
|
3247
3249
|
try {
|
|
3248
3250
|
const jsonPiece = parseJson(piece);
|
|
3251
|
+
this.logger.info(`\uD83D\uDCB8`, `emitted`, jsonPiece);
|
|
3249
3252
|
this.handleEvent(...jsonPiece);
|
|
3250
3253
|
this.incompleteData = ``;
|
|
3251
3254
|
} catch (thrown0) {
|
|
@@ -3264,6 +3267,7 @@ var ChildSocket = class extends CustomSocket {
|
|
|
3264
3267
|
if (idx === 0) {
|
|
3265
3268
|
this.incompleteData = piece;
|
|
3266
3269
|
const maybeActualJsonPiece = parseJson(initialMaybeWellFormed);
|
|
3270
|
+
this.logger.info(`\uD83D\uDCB8`, `emitted`, maybeActualJsonPiece);
|
|
3267
3271
|
this.handleEvent(...maybeActualJsonPiece);
|
|
3268
3272
|
this.incompleteData = ``;
|
|
3269
3273
|
} else
|
|
@@ -3275,32 +3275,34 @@ var ParentSocket = class extends CustomSocket {
|
|
|
3275
3275
|
this.id = this.proc.pid?.toString();
|
|
3276
3276
|
this.on(`user-joins`, (userKey) => {
|
|
3277
3277
|
this.logger.info(`\uD83D\uDC64`, userKey, `joined`);
|
|
3278
|
+
if (this.relays.get(userKey))
|
|
3279
|
+
return;
|
|
3278
3280
|
const relay = new SubjectSocket(userKey);
|
|
3279
3281
|
this.relays.set(userKey, relay);
|
|
3280
|
-
this.logger.info(`\uD83D\uDD17`, `attaching services for
|
|
3282
|
+
this.logger.info(`\uD83D\uDD17`, `attaching relay services for`, userKey);
|
|
3281
3283
|
const cleanupRelay = this.initRelay(relay, userKey);
|
|
3282
3284
|
if (cleanupRelay)
|
|
3283
3285
|
relay.disposalFunctions.push(cleanupRelay);
|
|
3284
3286
|
this.on(userKey, (...data) => {
|
|
3285
3287
|
relay.in.next(data);
|
|
3286
3288
|
});
|
|
3287
|
-
relay.out.subscribe(`socket`, (data) => {
|
|
3288
|
-
this.emit(...data);
|
|
3289
|
-
});
|
|
3289
|
+
relay.disposalFunctions.push(relay.out.subscribe(`socket`, (data) => {
|
|
3290
|
+
this.emit(userKey, ...data);
|
|
3291
|
+
}));
|
|
3290
3292
|
});
|
|
3291
|
-
this.on(`user-leaves`, (
|
|
3292
|
-
const relay = this.relays.get(
|
|
3293
|
-
this.off(
|
|
3293
|
+
this.on(`user-leaves`, (userKey) => {
|
|
3294
|
+
const relay = this.relays.get(userKey);
|
|
3295
|
+
this.off(userKey);
|
|
3294
3296
|
if (relay) {
|
|
3295
3297
|
relay.dispose();
|
|
3296
|
-
this.relays.delete(
|
|
3298
|
+
this.relays.delete(userKey);
|
|
3297
3299
|
}
|
|
3298
3300
|
});
|
|
3299
3301
|
this.proc.stdout.write(PROOF_OF_LIFE_SIGNAL);
|
|
3300
3302
|
}
|
|
3301
3303
|
receiveRelay(attachServices) {
|
|
3302
|
-
this.logger.info(`\uD83D\uDD17`, `running relay method`);
|
|
3303
3304
|
this.initRelay = attachServices;
|
|
3305
|
+
this.logger.info(`\uD83D\uDD17`, `ready to relay`);
|
|
3304
3306
|
}
|
|
3305
3307
|
};
|
|
3306
3308
|
var ChildSocket = class extends CustomSocket {
|
|
@@ -3364,6 +3366,7 @@ var ChildSocket = class extends CustomSocket {
|
|
|
3364
3366
|
continue;
|
|
3365
3367
|
try {
|
|
3366
3368
|
const jsonPiece = parseJson(piece);
|
|
3369
|
+
this.logger.info(`\uD83D\uDCB8`, `emitted`, jsonPiece);
|
|
3367
3370
|
this.handleEvent(...jsonPiece);
|
|
3368
3371
|
this.incompleteData = ``;
|
|
3369
3372
|
} catch (thrown0) {
|
|
@@ -3382,6 +3385,7 @@ var ChildSocket = class extends CustomSocket {
|
|
|
3382
3385
|
if (idx === 0) {
|
|
3383
3386
|
this.incompleteData = piece;
|
|
3384
3387
|
const maybeActualJsonPiece = parseJson(initialMaybeWellFormed);
|
|
3388
|
+
this.logger.info(`\uD83D\uDCB8`, `emitted`, maybeActualJsonPiece);
|
|
3385
3389
|
this.handleEvent(...maybeActualJsonPiece);
|
|
3386
3390
|
this.incompleteData = ``;
|
|
3387
3391
|
} else
|
package/bin/frontend.bun.js
CHANGED
|
@@ -11726,32 +11726,34 @@ var ParentSocket = class extends CustomSocket {
|
|
|
11726
11726
|
this.id = this.proc.pid?.toString();
|
|
11727
11727
|
this.on(`user-joins`, (userKey) => {
|
|
11728
11728
|
this.logger.info(`\uD83D\uDC64`, userKey, `joined`);
|
|
11729
|
+
if (this.relays.get(userKey))
|
|
11730
|
+
return;
|
|
11729
11731
|
const relay = new SubjectSocket(userKey);
|
|
11730
11732
|
this.relays.set(userKey, relay);
|
|
11731
|
-
this.logger.info(`\uD83D\uDD17`, `attaching services for
|
|
11733
|
+
this.logger.info(`\uD83D\uDD17`, `attaching relay services for`, userKey);
|
|
11732
11734
|
const cleanupRelay = this.initRelay(relay, userKey);
|
|
11733
11735
|
if (cleanupRelay)
|
|
11734
11736
|
relay.disposalFunctions.push(cleanupRelay);
|
|
11735
11737
|
this.on(userKey, (...data) => {
|
|
11736
11738
|
relay.in.next(data);
|
|
11737
11739
|
});
|
|
11738
|
-
relay.out.subscribe(`socket`, (data) => {
|
|
11739
|
-
this.emit(...data);
|
|
11740
|
-
});
|
|
11740
|
+
relay.disposalFunctions.push(relay.out.subscribe(`socket`, (data) => {
|
|
11741
|
+
this.emit(userKey, ...data);
|
|
11742
|
+
}));
|
|
11741
11743
|
});
|
|
11742
|
-
this.on(`user-leaves`, (
|
|
11743
|
-
const relay = this.relays.get(
|
|
11744
|
-
this.off(
|
|
11744
|
+
this.on(`user-leaves`, (userKey) => {
|
|
11745
|
+
const relay = this.relays.get(userKey);
|
|
11746
|
+
this.off(userKey);
|
|
11745
11747
|
if (relay) {
|
|
11746
11748
|
relay.dispose();
|
|
11747
|
-
this.relays.delete(
|
|
11749
|
+
this.relays.delete(userKey);
|
|
11748
11750
|
}
|
|
11749
11751
|
});
|
|
11750
11752
|
this.proc.stdout.write(PROOF_OF_LIFE_SIGNAL);
|
|
11751
11753
|
}
|
|
11752
11754
|
receiveRelay(attachServices) {
|
|
11753
|
-
this.logger.info(`\uD83D\uDD17`, `running relay method`);
|
|
11754
11755
|
this.initRelay = attachServices;
|
|
11756
|
+
this.logger.info(`\uD83D\uDD17`, `ready to relay`);
|
|
11755
11757
|
}
|
|
11756
11758
|
};
|
|
11757
11759
|
var ChildSocket = class extends CustomSocket {
|
|
@@ -11815,6 +11817,7 @@ var ChildSocket = class extends CustomSocket {
|
|
|
11815
11817
|
continue;
|
|
11816
11818
|
try {
|
|
11817
11819
|
const jsonPiece = parseJson2(piece);
|
|
11820
|
+
this.logger.info(`\uD83D\uDCB8`, `emitted`, jsonPiece);
|
|
11818
11821
|
this.handleEvent(...jsonPiece);
|
|
11819
11822
|
this.incompleteData = ``;
|
|
11820
11823
|
} catch (thrown0) {
|
|
@@ -11833,6 +11836,7 @@ var ChildSocket = class extends CustomSocket {
|
|
|
11833
11836
|
if (idx === 0) {
|
|
11834
11837
|
this.incompleteData = piece;
|
|
11835
11838
|
const maybeActualJsonPiece = parseJson2(initialMaybeWellFormed);
|
|
11839
|
+
this.logger.info(`\uD83D\uDCB8`, `emitted`, maybeActualJsonPiece);
|
|
11836
11840
|
this.handleEvent(...maybeActualJsonPiece);
|
|
11837
11841
|
this.incompleteData = ``;
|
|
11838
11842
|
} else
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tempest.games",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.101",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"@js-temporal/polyfill": "0.5.1",
|
|
30
30
|
"@react-email/components": "1.0.2",
|
|
31
31
|
"@t3-oss/env-core": "0.13.10",
|
|
32
|
-
"@trpc/client": "11.8.
|
|
33
|
-
"@trpc/server": "11.8.
|
|
32
|
+
"@trpc/client": "11.8.1",
|
|
33
|
+
"@trpc/server": "11.8.1",
|
|
34
34
|
"arktype": "2.1.29",
|
|
35
35
|
"cron": "4.4.0",
|
|
36
36
|
"drizzle-orm": "0.45.1",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"safegen": "0.8.3",
|
|
46
46
|
"socket.io": "4.8.1",
|
|
47
47
|
"socket.io-client": "4.8.1",
|
|
48
|
-
"atom.io": "0.46.
|
|
48
|
+
"atom.io": "0.46.9",
|
|
49
49
|
"safedeposit": "0.1.2",
|
|
50
50
|
"treetrunks": "0.1.5"
|
|
51
51
|
},
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"sass-embedded": "1.97.1",
|
|
70
70
|
"vite": "7.3.0",
|
|
71
71
|
"vitest": "4.0.16",
|
|
72
|
-
"flightdeck": "0.3.
|
|
72
|
+
"flightdeck": "0.3.29",
|
|
73
73
|
"varmint": "0.5.11"
|
|
74
74
|
},
|
|
75
75
|
"scripts": {
|