@qlever-llc/trellis 0.10.9 → 0.10.11
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/esm/client.d.ts +2 -0
- package/esm/client.d.ts.map +1 -1
- package/esm/client.js +2 -0
- package/esm/client_connect.d.ts +3 -2
- package/esm/client_connect.d.ts.map +1 -1
- package/esm/client_connect.js +4 -1
- package/esm/generated-sdk/auth/api.d.ts.map +1 -1
- package/esm/generated-sdk/auth/client.d.ts.map +1 -1
- package/esm/generated-sdk/auth/contract.d.ts.map +1 -1
- package/esm/generated-sdk/auth/contract.js +9590 -7
- package/esm/generated-sdk/auth/mod.d.ts +3 -3
- package/esm/generated-sdk/auth/mod.d.ts.map +1 -1
- package/esm/generated-sdk/auth/mod.js +1 -1
- package/esm/generated-sdk/auth/owned_api.d.ts.map +1 -1
- package/esm/generated-sdk/auth/owned_api.js +305 -62
- package/esm/generated-sdk/auth/schemas.d.ts.map +1 -1
- package/esm/generated-sdk/auth/schemas.js +6492 -139
- package/esm/generated-sdk/auth/types.d.ts +254 -254
- package/esm/generated-sdk/auth/types.d.ts.map +1 -1
- package/esm/generated-sdk/health/api.d.ts.map +1 -1
- package/esm/generated-sdk/health/client.d.ts.map +1 -1
- package/esm/generated-sdk/health/contract.d.ts.map +1 -1
- package/esm/generated-sdk/health/contract.js +117 -7
- package/esm/generated-sdk/health/mod.d.ts +2 -2
- package/esm/generated-sdk/health/mod.d.ts.map +1 -1
- package/esm/generated-sdk/health/mod.js +1 -1
- package/esm/generated-sdk/health/owned_api.d.ts.map +1 -1
- package/esm/generated-sdk/health/schemas.d.ts.map +1 -1
- package/esm/generated-sdk/health/schemas.js +79 -1
- package/esm/generated-sdk/health/types.d.ts +4 -4
- package/esm/generated-sdk/health/types.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/api.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/api.js +12 -4
- package/esm/generated-sdk/jobs/client.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/contract.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/contract.js +1080 -7
- package/esm/generated-sdk/jobs/mod.d.ts +2 -2
- package/esm/generated-sdk/jobs/mod.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/mod.js +1 -1
- package/esm/generated-sdk/jobs/owned_api.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/owned_api.js +26 -6
- package/esm/generated-sdk/jobs/schemas.d.ts.map +1 -1
- package/esm/generated-sdk/jobs/schemas.js +768 -18
- package/esm/generated-sdk/jobs/types.d.ts +14 -14
- package/esm/generated-sdk/jobs/types.d.ts.map +1 -1
- package/esm/generated-sdk/state/api.d.ts.map +1 -1
- package/esm/generated-sdk/state/api.js +3 -1
- package/esm/generated-sdk/state/client.d.ts.map +1 -1
- package/esm/generated-sdk/state/contract.d.ts.map +1 -1
- package/esm/generated-sdk/state/contract.js +638 -7
- package/esm/generated-sdk/state/mod.d.ts +2 -2
- package/esm/generated-sdk/state/mod.d.ts.map +1 -1
- package/esm/generated-sdk/state/mod.js +1 -1
- package/esm/generated-sdk/state/owned_api.d.ts.map +1 -1
- package/esm/generated-sdk/state/owned_api.js +36 -8
- package/esm/generated-sdk/state/schemas.d.ts.map +1 -1
- package/esm/generated-sdk/state/schemas.js +441 -14
- package/esm/generated-sdk/state/types.d.ts +15 -15
- package/esm/generated-sdk/state/types.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/api.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/client.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/contract.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/contract.js +744 -7
- package/esm/generated-sdk/trellis-core/mod.d.ts +2 -2
- package/esm/generated-sdk/trellis-core/mod.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/mod.js +1 -1
- package/esm/generated-sdk/trellis-core/owned_api.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/owned_api.js +1 -1
- package/esm/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
- package/esm/generated-sdk/trellis-core/schemas.js +626 -8
- package/esm/generated-sdk/trellis-core/types.d.ts +14 -14
- package/esm/generated-sdk/trellis-core/types.d.ts.map +1 -1
- package/esm/server/health.d.ts.map +1 -1
- package/esm/server/health.js +34 -3
- package/esm/server/service.d.ts +35 -13
- package/esm/server/service.d.ts.map +1 -1
- package/esm/server/service.js +33 -3
- package/esm/server.d.ts.map +1 -1
- package/esm/server.js +49 -8
- package/esm/service/deno.d.ts +1 -1
- package/esm/service/deno.d.ts.map +1 -1
- package/esm/service/mod.d.ts +1 -1
- package/esm/service/mod.d.ts.map +1 -1
- package/esm/service/node.d.ts +1 -1
- package/esm/service/node.d.ts.map +1 -1
- package/esm/trellis.d.ts +28 -4
- package/esm/trellis.d.ts.map +1 -1
- package/esm/trellis.js +117 -26
- package/package.json +2 -2
- package/script/client.d.ts +2 -0
- package/script/client.d.ts.map +1 -1
- package/script/client.js +2 -0
- package/script/client_connect.d.ts +3 -2
- package/script/client_connect.d.ts.map +1 -1
- package/script/client_connect.js +4 -1
- package/script/generated-sdk/auth/api.d.ts.map +1 -1
- package/script/generated-sdk/auth/client.d.ts.map +1 -1
- package/script/generated-sdk/auth/contract.d.ts.map +1 -1
- package/script/generated-sdk/auth/contract.js +9590 -7
- package/script/generated-sdk/auth/mod.d.ts +3 -3
- package/script/generated-sdk/auth/mod.d.ts.map +1 -1
- package/script/generated-sdk/auth/mod.js +2 -2
- package/script/generated-sdk/auth/owned_api.d.ts.map +1 -1
- package/script/generated-sdk/auth/owned_api.js +304 -61
- package/script/generated-sdk/auth/schemas.d.ts.map +1 -1
- package/script/generated-sdk/auth/schemas.js +6492 -139
- package/script/generated-sdk/auth/types.d.ts +254 -254
- package/script/generated-sdk/auth/types.d.ts.map +1 -1
- package/script/generated-sdk/health/api.d.ts.map +1 -1
- package/script/generated-sdk/health/client.d.ts.map +1 -1
- package/script/generated-sdk/health/contract.d.ts.map +1 -1
- package/script/generated-sdk/health/contract.js +117 -7
- package/script/generated-sdk/health/mod.d.ts +2 -2
- package/script/generated-sdk/health/mod.d.ts.map +1 -1
- package/script/generated-sdk/health/mod.js +2 -2
- package/script/generated-sdk/health/owned_api.d.ts.map +1 -1
- package/script/generated-sdk/health/schemas.d.ts.map +1 -1
- package/script/generated-sdk/health/schemas.js +79 -1
- package/script/generated-sdk/health/types.d.ts +4 -4
- package/script/generated-sdk/health/types.d.ts.map +1 -1
- package/script/generated-sdk/jobs/api.d.ts.map +1 -1
- package/script/generated-sdk/jobs/api.js +12 -4
- package/script/generated-sdk/jobs/client.d.ts.map +1 -1
- package/script/generated-sdk/jobs/contract.d.ts.map +1 -1
- package/script/generated-sdk/jobs/contract.js +1080 -7
- package/script/generated-sdk/jobs/mod.d.ts +2 -2
- package/script/generated-sdk/jobs/mod.d.ts.map +1 -1
- package/script/generated-sdk/jobs/mod.js +2 -2
- package/script/generated-sdk/jobs/owned_api.d.ts.map +1 -1
- package/script/generated-sdk/jobs/owned_api.js +25 -5
- package/script/generated-sdk/jobs/schemas.d.ts.map +1 -1
- package/script/generated-sdk/jobs/schemas.js +768 -18
- package/script/generated-sdk/jobs/types.d.ts +14 -14
- package/script/generated-sdk/jobs/types.d.ts.map +1 -1
- package/script/generated-sdk/state/api.d.ts.map +1 -1
- package/script/generated-sdk/state/api.js +3 -1
- package/script/generated-sdk/state/client.d.ts.map +1 -1
- package/script/generated-sdk/state/contract.d.ts.map +1 -1
- package/script/generated-sdk/state/contract.js +638 -7
- package/script/generated-sdk/state/mod.d.ts +2 -2
- package/script/generated-sdk/state/mod.d.ts.map +1 -1
- package/script/generated-sdk/state/mod.js +2 -2
- package/script/generated-sdk/state/owned_api.d.ts.map +1 -1
- package/script/generated-sdk/state/owned_api.js +35 -7
- package/script/generated-sdk/state/schemas.d.ts.map +1 -1
- package/script/generated-sdk/state/schemas.js +441 -14
- package/script/generated-sdk/state/types.d.ts +15 -15
- package/script/generated-sdk/state/types.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/api.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/client.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/contract.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/contract.js +744 -7
- package/script/generated-sdk/trellis-core/mod.d.ts +2 -2
- package/script/generated-sdk/trellis-core/mod.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/mod.js +2 -2
- package/script/generated-sdk/trellis-core/owned_api.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
- package/script/generated-sdk/trellis-core/schemas.js +626 -8
- package/script/generated-sdk/trellis-core/types.d.ts +14 -14
- package/script/generated-sdk/trellis-core/types.d.ts.map +1 -1
- package/script/server/health.d.ts.map +1 -1
- package/script/server/health.js +34 -3
- package/script/server/service.d.ts +35 -13
- package/script/server/service.d.ts.map +1 -1
- package/script/server/service.js +32 -2
- package/script/server.d.ts.map +1 -1
- package/script/server.js +48 -7
- package/script/service/deno.d.ts +1 -1
- package/script/service/deno.d.ts.map +1 -1
- package/script/service/mod.d.ts +1 -1
- package/script/service/mod.d.ts.map +1 -1
- package/script/service/node.d.ts +1 -1
- package/script/service/node.d.ts.map +1 -1
- package/script/trellis.d.ts +28 -4
- package/script/trellis.d.ts.map +1 -1
- package/script/trellis.js +118 -26
- package/src/client.ts +4 -0
- package/src/client_connect.ts +11 -9
- package/src/sdk/_generated/auth/api.ts +10 -21
- package/src/sdk/_generated/auth/client.ts +1178 -160
- package/src/sdk/_generated/auth/contract.ts +9637 -13
- package/src/sdk/_generated/auth/mod.ts +22 -3
- package/src/sdk/_generated/auth/owned_api.ts +897 -264
- package/src/sdk/_generated/auth/schemas.ts +6630 -278
- package/src/sdk/_generated/auth/types.ts +2950 -359
- package/src/sdk/_generated/core/api.ts +10 -21
- package/src/sdk/_generated/core/client.ts +105 -12
- package/src/sdk/_generated/core/contract.ts +774 -13
- package/src/sdk/_generated/core/mod.ts +17 -2
- package/src/sdk/_generated/core/owned_api.ts +40 -24
- package/src/sdk/_generated/core/schemas.ts +626 -9
- package/src/sdk/_generated/core/types.ts +233 -18
- package/src/sdk/_generated/health/api.ts +10 -21
- package/src/sdk/_generated/health/client.ts +104 -8
- package/src/sdk/_generated/health/contract.ts +144 -13
- package/src/sdk/_generated/health/mod.ts +17 -2
- package/src/sdk/_generated/health/owned_api.ts +4 -9
- package/src/sdk/_generated/health/schemas.ts +79 -2
- package/src/sdk/_generated/health/types.ts +31 -4
- package/src/sdk/_generated/jobs/api.ts +20 -18
- package/src/sdk/_generated/jobs/client.ts +199 -28
- package/src/sdk/_generated/jobs/contract.ts +1119 -13
- package/src/sdk/_generated/jobs/mod.ts +17 -2
- package/src/sdk/_generated/jobs/owned_api.ts +64 -27
- package/src/sdk/_generated/jobs/schemas.ts +776 -20
- package/src/sdk/_generated/jobs/types.ts +407 -34
- package/src/sdk/_generated/state/api.ts +11 -18
- package/src/sdk/_generated/state/client.ts +169 -22
- package/src/sdk/_generated/state/contract.ts +670 -13
- package/src/sdk/_generated/state/mod.ts +17 -2
- package/src/sdk/_generated/state/owned_api.ts +65 -25
- package/src/sdk/_generated/state/schemas.ts +441 -15
- package/src/sdk/_generated/state/types.ts +229 -26
- package/src/server/health.ts +41 -3
- package/src/server/service.ts +140 -18
- package/src/server.ts +62 -7
- package/src/service/deno.ts +4 -0
- package/src/service/mod.ts +4 -0
- package/src/service/node.ts +4 -0
- package/src/trellis.ts +167 -55
package/script/trellis.js
CHANGED
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var _Trellis_instances, _Trellis_log, _Trellis_tasks, _Trellis_hasExplicitApi, _Trellis_noResponderMaxRetries, _Trellis_noResponderRetryMs, _Trellis_onSessionNotFound, _Trellis_operationStore, _Trellis_eventConsumers, _Trellis_durableEventLoops, _Trellis_createStateFacade, _Trellis_createRpcFacade, _Trellis_createRpcHandleFacade, _Trellis_createEventFacade, _Trellis_createEventPublishFacade, _Trellis_createFeedFacade, _Trellis_createHandlerTrellis, _Trellis_createOperationFacade, _Trellis_unknownApiError, _Trellis_requestBuiltRpcUnknown, _Trellis_requestBuiltRpc, _Trellis_handleBrowserAuthRequired, _Trellis_authenticateFeedRequest, _Trellis_subscribeFeed, _Trellis_handleFeed, _Trellis_processFeedMessage, _Trellis_handleRPC, _Trellis_processRPCMessage, _Trellis_respondWithPayload, _Trellis_respondWithError, _Trellis_startEphemeralEvent, _Trellis_resolveEventConsumerGroup, _Trellis_registerDurableEventHandler, _Trellis_startDurableEventConsumer, _Trellis_durableEventConsumerGroupReady, _Trellis_runDurableEventConsumer, _Trellis_handleDurableEvent, _Trellis_handleDurableEventConsumer, _Trellis_parseEventMessage, _Trellis_escapeSubjectToken, _Trellis_currentIat, _Trellis_createProof, _Trellis_requestMessageWithRetry, _Trellis_requestJson, _Trellis_watchJson;
|
|
13
|
+
var _Trellis_instances, _Trellis_log, _Trellis_tasks, _Trellis_hasExplicitApi, _Trellis_noResponderMaxRetries, _Trellis_noResponderRetryMs, _Trellis_onSessionNotFound, _Trellis_operationStore, _Trellis_eventConsumers, _Trellis_durableEventLoops, _Trellis_createStateFacade, _Trellis_createRpcFacade, _Trellis_createRpcHandleFacade, _Trellis_createEventFacade, _Trellis_createEventPublishFacade, _Trellis_createFeedFacade, _Trellis_createHandlerTrellis, _Trellis_createOperationFacade, _Trellis_unknownApiError, _Trellis_requestBuiltRpcUnknown, _Trellis_requestBuiltRpc, _Trellis_handleBrowserAuthRequired, _Trellis_authenticateFeedRequest, _Trellis_subscribeFeed, _Trellis_handleFeed, _Trellis_processFeedMessage, _Trellis_handleRPC, _Trellis_processRPCMessage, _Trellis_respondWithPayload, _Trellis_respondWithError, _Trellis_startEphemeralEvent, _Trellis_invokeEventHandler, _Trellis_resolveEventConsumerGroup, _Trellis_registerDurableEventHandler, _Trellis_startDurableEventConsumer, _Trellis_durableEventConsumerGroupReady, _Trellis_runDurableEventConsumer, _Trellis_handleDurableEvent, _Trellis_handleDurableEventConsumer, _Trellis_parseEventMessage, _Trellis_escapeSubjectToken, _Trellis_currentIat, _Trellis_createProof, _Trellis_requestMessageWithRetry, _Trellis_requestJson, _Trellis_watchJson;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.Trellis = exports.DurableOperationRecordSchema = void 0;
|
|
16
16
|
exports.safeJson = safeJson;
|
|
@@ -21,6 +21,7 @@ exports.sha256 = sha256;
|
|
|
21
21
|
exports.buildProofInput = buildProofInput;
|
|
22
22
|
exports.isOperationDeferred = isOperationDeferred;
|
|
23
23
|
exports.isResultLike = isResultLike;
|
|
24
|
+
exports.annotateHandlerBoundaryError = annotateHandlerBoundaryError;
|
|
24
25
|
exports.buildRuntimeOperationSnapshot = buildRuntimeOperationSnapshot;
|
|
25
26
|
exports.isTerminalRuntimeOperationSnapshot = isTerminalRuntimeOperationSnapshot;
|
|
26
27
|
exports.createTrellisInternal = createTrellisInternal;
|
|
@@ -204,6 +205,21 @@ function isOperationDeferred(value) {
|
|
|
204
205
|
function isResultLike(value) {
|
|
205
206
|
return value instanceof result_1.Result;
|
|
206
207
|
}
|
|
208
|
+
function compactHandlerErrorContext(context) {
|
|
209
|
+
return Object.fromEntries(Object.entries(context).filter(([key, value]) => key !== "traceId" && value !== undefined));
|
|
210
|
+
}
|
|
211
|
+
function sanitizeHandlerErrorContext(error) {
|
|
212
|
+
delete error.getContext().subject;
|
|
213
|
+
}
|
|
214
|
+
function annotateHandlerBoundaryError(cause, context) {
|
|
215
|
+
const error = cause instanceof result_1.BaseError && !(cause instanceof RemoteError_js_1.RemoteError)
|
|
216
|
+
? cause
|
|
217
|
+
: new index_js_1.UnexpectedError({ cause });
|
|
218
|
+
sanitizeHandlerErrorContext(error);
|
|
219
|
+
error.withContext(compactHandlerErrorContext(context));
|
|
220
|
+
error.withTraceId(context.traceId);
|
|
221
|
+
return error;
|
|
222
|
+
}
|
|
207
223
|
const DurableOperationSignalSchema = typebox_1.Type.Object({
|
|
208
224
|
operationId: typebox_1.Type.String(),
|
|
209
225
|
sequence: typebox_1.Type.Number(),
|
|
@@ -234,8 +250,11 @@ const DurableOperationSnapshotSchema = typebox_1.Type.Object({
|
|
|
234
250
|
})),
|
|
235
251
|
output: typebox_1.Type.Optional(typebox_1.Type.Any()),
|
|
236
252
|
error: typebox_1.Type.Optional(typebox_1.Type.Object({
|
|
253
|
+
id: typebox_1.Type.Optional(typebox_1.Type.String()),
|
|
237
254
|
type: typebox_1.Type.String(),
|
|
238
255
|
message: typebox_1.Type.String(),
|
|
256
|
+
context: typebox_1.Type.Optional(typebox_1.Type.Record(typebox_1.Type.String(), typebox_1.Type.Unknown())),
|
|
257
|
+
traceId: typebox_1.Type.Optional(typebox_1.Type.String()),
|
|
239
258
|
})),
|
|
240
259
|
});
|
|
241
260
|
exports.DurableOperationRecordSchema = typebox_1.Type.Object({
|
|
@@ -741,6 +760,18 @@ class Trellis {
|
|
|
741
760
|
writable: true,
|
|
742
761
|
value: void 0
|
|
743
762
|
});
|
|
763
|
+
Object.defineProperty(this, "contractId", {
|
|
764
|
+
enumerable: true,
|
|
765
|
+
configurable: true,
|
|
766
|
+
writable: true,
|
|
767
|
+
value: void 0
|
|
768
|
+
});
|
|
769
|
+
Object.defineProperty(this, "contractDigest", {
|
|
770
|
+
enumerable: true,
|
|
771
|
+
configurable: true,
|
|
772
|
+
writable: true,
|
|
773
|
+
value: void 0
|
|
774
|
+
});
|
|
744
775
|
Object.defineProperty(this, "nats", {
|
|
745
776
|
enumerable: true,
|
|
746
777
|
configurable: true,
|
|
@@ -783,6 +814,8 @@ class Trellis {
|
|
|
783
814
|
__classPrivateFieldSet(this, _Trellis_log, (opts?.log ?? globals_js_1.logger).child({ lib: "trellis" }), "f");
|
|
784
815
|
this.timeout = opts?.timeout ?? 3000;
|
|
785
816
|
this.stream = opts?.stream ?? "trellis";
|
|
817
|
+
this.contractId = opts?.contractId;
|
|
818
|
+
this.contractDigest = opts?.contractDigest;
|
|
786
819
|
__classPrivateFieldSet(this, _Trellis_hasExplicitApi, api !== undefined, "f");
|
|
787
820
|
__classPrivateFieldSet(this, _Trellis_noResponderMaxRetries, opts?.noResponderRetry?.maxAttempts ??
|
|
788
821
|
DEFAULT_NO_RESPONDER_MAX_RETRIES, "f");
|
|
@@ -1543,9 +1576,14 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1543
1576
|
}
|
|
1544
1577
|
}
|
|
1545
1578
|
catch (cause) {
|
|
1546
|
-
const error = cause
|
|
1547
|
-
|
|
1548
|
-
:
|
|
1579
|
+
const error = annotateHandlerBoundaryError(cause, {
|
|
1580
|
+
feed,
|
|
1581
|
+
requestId: msg.headers?.get("request-id"),
|
|
1582
|
+
service: this.name,
|
|
1583
|
+
contractId: this.contractId,
|
|
1584
|
+
contractDigest: this.contractDigest,
|
|
1585
|
+
traceId: traceIdFromTraceparent(msg.headers?.get("traceparent")),
|
|
1586
|
+
});
|
|
1549
1587
|
__classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_respondWithError).call(this, msg, error);
|
|
1550
1588
|
}
|
|
1551
1589
|
})();
|
|
@@ -1580,7 +1618,7 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1580
1618
|
await this.nats.flush();
|
|
1581
1619
|
const controller = new AbortController();
|
|
1582
1620
|
try {
|
|
1583
|
-
await handler({
|
|
1621
|
+
const handlerResult = await handler({
|
|
1584
1622
|
input: parsed,
|
|
1585
1623
|
caller: callerValue,
|
|
1586
1624
|
signal: controller.signal,
|
|
@@ -1598,6 +1636,19 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1598
1636
|
return (0, result_1.ok)(undefined);
|
|
1599
1637
|
})()),
|
|
1600
1638
|
});
|
|
1639
|
+
const handlerOutcome = isResultLike(handlerResult)
|
|
1640
|
+
? handlerResult.take()
|
|
1641
|
+
: handlerResult;
|
|
1642
|
+
if ((0, result_1.isErr)(handlerOutcome)) {
|
|
1643
|
+
return (0, result_1.err)(annotateHandlerBoundaryError(handlerOutcome.error, {
|
|
1644
|
+
feed,
|
|
1645
|
+
requestId: msg.headers?.get("request-id"),
|
|
1646
|
+
service: this.name,
|
|
1647
|
+
contractId: this.contractId,
|
|
1648
|
+
contractDigest: this.contractDigest,
|
|
1649
|
+
traceId: traceIdFromTraceparent(msg.headers?.get("traceparent")),
|
|
1650
|
+
}));
|
|
1651
|
+
}
|
|
1601
1652
|
return (0, result_1.ok)(undefined);
|
|
1602
1653
|
}
|
|
1603
1654
|
finally {
|
|
@@ -1830,7 +1881,14 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1830
1881
|
client: handlerTrellis,
|
|
1831
1882
|
})));
|
|
1832
1883
|
if (handlerResultWrapped.isErr()) {
|
|
1833
|
-
const error = handlerResultWrapped.error
|
|
1884
|
+
const error = annotateHandlerBoundaryError(handlerResultWrapped.error, {
|
|
1885
|
+
method: String(method),
|
|
1886
|
+
requestId: msg.headers?.get("request-id"),
|
|
1887
|
+
service: this.name,
|
|
1888
|
+
contractId: this.contractId,
|
|
1889
|
+
contractDigest: this.contractDigest,
|
|
1890
|
+
traceId: activeTraceId(span) ?? incomingTraceId,
|
|
1891
|
+
});
|
|
1834
1892
|
__classPrivateFieldGet(this, _Trellis_log, "f").error({
|
|
1835
1893
|
method,
|
|
1836
1894
|
error: error.message,
|
|
@@ -1848,11 +1906,14 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1848
1906
|
const handlerResult = handlerResultWrapped.take();
|
|
1849
1907
|
const handlerOutcome = handlerResult.take();
|
|
1850
1908
|
if ((0, result_1.isErr)(handlerOutcome)) {
|
|
1851
|
-
const
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
:
|
|
1909
|
+
const error = annotateHandlerBoundaryError(handlerOutcome.error, {
|
|
1910
|
+
method: String(method),
|
|
1911
|
+
requestId: msg.headers?.get("request-id"),
|
|
1912
|
+
service: this.name,
|
|
1913
|
+
contractId: this.contractId,
|
|
1914
|
+
contractDigest: this.contractDigest,
|
|
1915
|
+
traceId: activeTraceId(span) ?? incomingTraceId,
|
|
1916
|
+
});
|
|
1856
1917
|
__classPrivateFieldGet(this, _Trellis_log, "f").error({
|
|
1857
1918
|
method,
|
|
1858
1919
|
error: error.message,
|
|
@@ -1951,15 +2012,17 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1951
2012
|
__classPrivateFieldGet(this, _Trellis_log, "f").error({ error: m.error }, "Event validation failed");
|
|
1952
2013
|
continue;
|
|
1953
2014
|
}
|
|
1954
|
-
const handlerResult = await
|
|
2015
|
+
const handlerResult = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_invokeEventHandler).call(this, {
|
|
2016
|
+
event,
|
|
1955
2017
|
payload: m,
|
|
1956
|
-
subject: msg.subject,
|
|
1957
2018
|
mode: "ephemeral",
|
|
1958
2019
|
message: msg,
|
|
1959
|
-
|
|
1960
|
-
|
|
2020
|
+
fn,
|
|
2021
|
+
});
|
|
2022
|
+
const handlerValue = handlerResult.take();
|
|
2023
|
+
if ((0, result_1.isErr)(handlerValue)) {
|
|
1961
2024
|
__classPrivateFieldGet(this, _Trellis_log, "f").error({
|
|
1962
|
-
error:
|
|
2025
|
+
error: handlerValue.error.toSerializable(),
|
|
1963
2026
|
event,
|
|
1964
2027
|
subject: msg.subject,
|
|
1965
2028
|
}, "Event handler failed");
|
|
@@ -1968,6 +2031,31 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
1968
2031
|
});
|
|
1969
2032
|
__classPrivateFieldGet(this, _Trellis_tasks, "f").add(`event:${event}:${(0, ulid_1.ulid)()}`, task);
|
|
1970
2033
|
return (0, result_1.ok)(undefined);
|
|
2034
|
+
}, _Trellis_invokeEventHandler = async function _Trellis_invokeEventHandler(args) {
|
|
2035
|
+
const annotation = {
|
|
2036
|
+
event: String(args.event),
|
|
2037
|
+
service: this.name,
|
|
2038
|
+
contractId: this.contractId,
|
|
2039
|
+
contractDigest: this.contractDigest,
|
|
2040
|
+
traceId: traceIdFromTraceparent(args.message.headers?.get("traceparent")),
|
|
2041
|
+
};
|
|
2042
|
+
try {
|
|
2043
|
+
const result = await Promise.resolve(args.fn(args.payload, createEventListenerContext({
|
|
2044
|
+
payload: args.payload,
|
|
2045
|
+
subject: args.message.subject,
|
|
2046
|
+
mode: args.mode,
|
|
2047
|
+
...(args.group ? { group: args.group } : {}),
|
|
2048
|
+
message: args.message,
|
|
2049
|
+
})));
|
|
2050
|
+
const outcome = isResultLike(result) ? result.take() : result;
|
|
2051
|
+
if ((0, result_1.isErr)(outcome)) {
|
|
2052
|
+
return (0, result_1.err)(annotateHandlerBoundaryError(outcome.error, annotation));
|
|
2053
|
+
}
|
|
2054
|
+
return (0, result_1.ok)(undefined);
|
|
2055
|
+
}
|
|
2056
|
+
catch (cause) {
|
|
2057
|
+
return (0, result_1.err)(annotateHandlerBoundaryError(cause, annotation));
|
|
2058
|
+
}
|
|
1971
2059
|
}, _Trellis_resolveEventConsumerGroup = function _Trellis_resolveEventConsumerGroup(event, opts) {
|
|
1972
2060
|
const metadata = __classPrivateFieldGet(this, _Trellis_eventConsumers, "f").metadata;
|
|
1973
2061
|
const bindings = __classPrivateFieldGet(this, _Trellis_eventConsumers, "f").bindings ?? {};
|
|
@@ -2093,15 +2181,17 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
2093
2181
|
msg.term();
|
|
2094
2182
|
continue;
|
|
2095
2183
|
}
|
|
2096
|
-
const handlerResult = await
|
|
2184
|
+
const handlerResult = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_invokeEventHandler).call(this, {
|
|
2185
|
+
event,
|
|
2097
2186
|
payload: m,
|
|
2098
|
-
subject: msg.subject,
|
|
2099
2187
|
mode: "durable",
|
|
2100
2188
|
message: msg,
|
|
2101
|
-
|
|
2102
|
-
|
|
2189
|
+
fn,
|
|
2190
|
+
});
|
|
2191
|
+
const handlerValue = handlerResult.take();
|
|
2192
|
+
if ((0, result_1.isErr)(handlerValue)) {
|
|
2103
2193
|
__classPrivateFieldGet(this, _Trellis_log, "f").error({
|
|
2104
|
-
error:
|
|
2194
|
+
error: handlerValue.error.toSerializable(),
|
|
2105
2195
|
event,
|
|
2106
2196
|
subject: msg.subject,
|
|
2107
2197
|
}, "Event handler failed");
|
|
@@ -2134,16 +2224,18 @@ _Trellis_log = new WeakMap(), _Trellis_tasks = new WeakMap(), _Trellis_hasExplic
|
|
|
2134
2224
|
failed = true;
|
|
2135
2225
|
break;
|
|
2136
2226
|
}
|
|
2137
|
-
const handlerResult = await
|
|
2227
|
+
const handlerResult = await __classPrivateFieldGet(this, _Trellis_instances, "m", _Trellis_invokeEventHandler).call(this, {
|
|
2228
|
+
event: registration.event,
|
|
2138
2229
|
payload: eventPayload,
|
|
2139
|
-
subject: msg.subject,
|
|
2140
2230
|
mode: "durable",
|
|
2141
2231
|
group,
|
|
2142
2232
|
message: msg,
|
|
2143
|
-
|
|
2144
|
-
|
|
2233
|
+
fn: registration.fn,
|
|
2234
|
+
});
|
|
2235
|
+
const handlerValue = handlerResult.take();
|
|
2236
|
+
if ((0, result_1.isErr)(handlerValue)) {
|
|
2145
2237
|
__classPrivateFieldGet(this, _Trellis_log, "f").error({
|
|
2146
|
-
error:
|
|
2238
|
+
error: handlerValue.error.toSerializable(),
|
|
2147
2239
|
event: registration.event,
|
|
2148
2240
|
subject: msg.subject,
|
|
2149
2241
|
}, "Event handler failed");
|
package/src/client.ts
CHANGED
|
@@ -50,6 +50,8 @@ type ClientContractManifest = {
|
|
|
50
50
|
};
|
|
51
51
|
|
|
52
52
|
type ClientContractShape = {
|
|
53
|
+
CONTRACT_ID?: string;
|
|
54
|
+
CONTRACT_DIGEST?: string;
|
|
53
55
|
CONTRACT: ClientContractManifest;
|
|
54
56
|
API: {
|
|
55
57
|
owned?: TrellisAPI;
|
|
@@ -120,6 +122,8 @@ export function createClient<
|
|
|
120
122
|
noResponderRetry: opts?.noResponderRetry,
|
|
121
123
|
api,
|
|
122
124
|
state: contract[CONTRACT_STATE_METADATA],
|
|
125
|
+
contractId: contract.CONTRACT_ID,
|
|
126
|
+
contractDigest: contract.CONTRACT_DIGEST,
|
|
123
127
|
},
|
|
124
128
|
);
|
|
125
129
|
}
|
package/src/client_connect.ts
CHANGED
|
@@ -224,13 +224,12 @@ const ClientTransportsSchema = Type.Object({
|
|
|
224
224
|
type ClientConnectDeps = {
|
|
225
225
|
loadTransport(): Promise<RuntimeTransport>;
|
|
226
226
|
now(): number;
|
|
227
|
-
setInterval?: (
|
|
228
|
-
|
|
229
|
-
ms: number,
|
|
230
|
-
) => ReturnType<typeof globalThis.setInterval>;
|
|
231
|
-
clearInterval?: (id: ReturnType<typeof globalThis.setInterval>) => void;
|
|
227
|
+
setInterval?: (handler: () => void, ms: number) => IntervalHandle;
|
|
228
|
+
clearInterval?: (id: IntervalHandle) => void;
|
|
232
229
|
};
|
|
233
230
|
|
|
231
|
+
type IntervalHandle = ReturnType<typeof globalThis.setInterval> | number;
|
|
232
|
+
|
|
234
233
|
const ClientBootstrapReadySchema = Type.Object({
|
|
235
234
|
status: Type.Literal("ready"),
|
|
236
235
|
serverNow: Type.Integer(),
|
|
@@ -800,11 +799,14 @@ async function createRuntimeUserAuthenticator(args: {
|
|
|
800
799
|
((
|
|
801
800
|
handler: () => void,
|
|
802
801
|
ms: number,
|
|
803
|
-
):
|
|
804
|
-
globalThis.setInterval(handler, ms));
|
|
802
|
+
): IntervalHandle => globalThis.setInterval(handler, ms));
|
|
805
803
|
const clearRefreshInterval = args.deps.clearInterval ??
|
|
806
|
-
((id:
|
|
807
|
-
globalThis.clearInterval(
|
|
804
|
+
((id: IntervalHandle) => {
|
|
805
|
+
const clearIntervalFn = globalThis.clearInterval as (
|
|
806
|
+
id: IntervalHandle,
|
|
807
|
+
) => void;
|
|
808
|
+
clearIntervalFn(id);
|
|
809
|
+
});
|
|
808
810
|
const refreshIntervalId = setRefreshInterval(() => {
|
|
809
811
|
void refresh();
|
|
810
812
|
}, 10_000);
|
|
@@ -4,29 +4,19 @@ import { OWNED_API } from "./owned_api.js";
|
|
|
4
4
|
export { OWNED_API };
|
|
5
5
|
|
|
6
6
|
export type UsedApi = {
|
|
7
|
-
rpc: {
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
};
|
|
13
|
-
feeds: {
|
|
14
|
-
};
|
|
15
|
-
subjects: {
|
|
16
|
-
};
|
|
7
|
+
rpc: {};
|
|
8
|
+
operations: {};
|
|
9
|
+
events: {};
|
|
10
|
+
feeds: {};
|
|
11
|
+
subjects: {};
|
|
17
12
|
};
|
|
18
13
|
|
|
19
14
|
export const USED_API: UsedApi = {
|
|
20
|
-
rpc: {
|
|
21
|
-
},
|
|
22
|
-
|
|
23
|
-
},
|
|
24
|
-
|
|
25
|
-
},
|
|
26
|
-
feeds: {
|
|
27
|
-
},
|
|
28
|
-
subjects: {
|
|
29
|
-
},
|
|
15
|
+
rpc: {},
|
|
16
|
+
operations: {},
|
|
17
|
+
events: {},
|
|
18
|
+
feeds: {},
|
|
19
|
+
subjects: {},
|
|
30
20
|
};
|
|
31
21
|
|
|
32
22
|
export type OwnedApi = typeof OWNED_API;
|
|
@@ -44,4 +34,3 @@ export const API = {
|
|
|
44
34
|
} as const;
|
|
45
35
|
|
|
46
36
|
export type ApiViews = typeof API;
|
|
47
|
-
|