@qlever-llc/trellis 0.10.12 → 0.10.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/esm/auth/browser.js +0 -1
- package/esm/auth.js +0 -1
- package/esm/browser.d.ts +29 -2
- package/esm/browser.d.ts.map +1 -1
- package/esm/browser.js +14 -3
- package/esm/client_connect.d.ts.map +1 -1
- package/esm/client_connect.js +7 -3
- package/esm/contract_support/mod.d.ts +6 -10
- package/esm/contract_support/mod.d.ts.map +1 -1
- package/esm/contract_support/mod.js +42 -31
- package/esm/contract_support/protocol.d.ts +8 -13
- package/esm/contract_support/protocol.d.ts.map +1 -1
- package/esm/contract_support/protocol.js +4 -5
- package/esm/contract_support/schema_pointers.d.ts +6 -0
- package/esm/contract_support/schema_pointers.d.ts.map +1 -1
- package/esm/contract_support/schema_pointers.js +59 -7
- package/esm/contracts.js +0 -1
- package/esm/device.d.ts +0 -29
- package/esm/device.d.ts.map +1 -1
- package/esm/device.js +10 -1
- package/esm/errors/index.js +0 -1
- package/esm/index.d.ts +3 -4
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -4
- package/esm/runtime_transport.d.ts.map +1 -1
- package/esm/runtime_transport.js +4 -2
- package/esm/server/health_rpc.d.ts +4 -2
- package/esm/server/health_rpc.d.ts.map +1 -1
- package/esm/server/health_rpc.js +6 -1
- package/esm/server/service.d.ts +12 -37
- package/esm/server/service.d.ts.map +1 -1
- package/esm/server/service.js +138 -103
- package/esm/server.js +3 -3
- package/esm/service/outbox_inbox.d.ts +1 -6
- package/esm/service/outbox_inbox.d.ts.map +1 -1
- package/esm/service/outbox_inbox.js +0 -21
- package/esm/telemetry/env.d.ts.map +1 -1
- package/esm/telemetry/env.js +5 -6
- package/esm/telemetry/metrics.d.ts +0 -7
- package/esm/telemetry/metrics.d.ts.map +1 -1
- package/esm/trellis.d.ts +1 -19
- package/esm/trellis.d.ts.map +1 -1
- package/esm/trellis.js +12 -8
- package/package.json +2 -2
- package/script/auth/browser.js +0 -1
- package/script/auth.js +0 -1
- package/script/browser.d.ts +29 -2
- package/script/browser.d.ts.map +1 -1
- package/script/browser.js +75 -17
- package/script/client_connect.d.ts.map +1 -1
- package/script/client_connect.js +7 -36
- package/script/contract_support/mod.d.ts +6 -10
- package/script/contract_support/mod.d.ts.map +1 -1
- package/script/contract_support/mod.js +46 -32
- package/script/contract_support/protocol.d.ts +8 -13
- package/script/contract_support/protocol.d.ts.map +1 -1
- package/script/contract_support/protocol.js +5 -6
- package/script/contract_support/schema_pointers.d.ts +6 -0
- package/script/contract_support/schema_pointers.d.ts.map +1 -1
- package/script/contract_support/schema_pointers.js +59 -7
- package/script/contracts.js +0 -1
- package/script/device.d.ts +0 -29
- package/script/device.d.ts.map +1 -1
- package/script/device.js +10 -1
- package/script/errors/index.js +0 -1
- package/script/index.d.ts +3 -4
- package/script/index.d.ts.map +1 -1
- package/script/index.js +1 -6
- package/script/runtime_transport.d.ts.map +1 -1
- package/script/runtime_transport.js +4 -2
- package/script/server/health_rpc.d.ts +4 -2
- package/script/server/health_rpc.d.ts.map +1 -1
- package/script/server/health_rpc.js +6 -1
- package/script/server/service.d.ts +12 -37
- package/script/server/service.d.ts.map +1 -1
- package/script/server/service.js +148 -112
- package/script/server.js +3 -3
- package/script/service/outbox_inbox.d.ts +1 -6
- package/script/service/outbox_inbox.d.ts.map +1 -1
- package/script/service/outbox_inbox.js +0 -21
- package/script/telemetry/env.d.ts.map +1 -1
- package/script/telemetry/env.js +5 -39
- package/script/telemetry/metrics.d.ts +0 -7
- package/script/telemetry/metrics.d.ts.map +1 -1
- package/script/trellis.d.ts +1 -19
- package/script/trellis.d.ts.map +1 -1
- package/script/trellis.js +12 -8
- package/src/browser.ts +200 -2
- package/src/client_connect.ts +10 -2
- package/src/contract_support/mod.ts +73 -45
- package/src/contract_support/protocol.ts +16 -7
- package/src/contract_support/schema_pointers.ts +80 -7
- package/src/device.ts +10 -2
- package/src/index.ts +3 -4
- package/src/runtime_transport.ts +6 -1
- package/src/server/health_rpc.ts +7 -2
- package/src/server/service.ts +177 -126
- package/src/server.ts +3 -3
- package/src/service/outbox_inbox.ts +1 -28
- package/src/telemetry/env.ts +10 -7
- package/src/trellis.ts +22 -13
|
@@ -61,12 +61,11 @@ export const ContractJobQueueSchema = Type.Object({
|
|
|
61
61
|
docs: Type.Optional(ContractDocsSchema),
|
|
62
62
|
});
|
|
63
63
|
export const ContractJobsSchema = Type.Record(Type.String({ minLength: 1 }), ContractJobQueueSchema);
|
|
64
|
-
export const
|
|
65
|
-
|
|
66
|
-
event: Type.String({ minLength: 1 }),
|
|
67
|
-
});
|
|
64
|
+
export const ContractEventConsumerUsesSchema = Type.Record(Type.String({ minLength: 1 }), Type.Array(Type.String({ minLength: 1 }), { minItems: 1 }));
|
|
65
|
+
export const ContractEventConsumerSelfSchema = Type.Array(Type.String({ minLength: 1 }));
|
|
68
66
|
export const ContractEventConsumerGroupSchema = Type.Object({
|
|
69
|
-
|
|
67
|
+
uses: Type.Optional(ContractEventConsumerUsesSchema),
|
|
68
|
+
self: Type.Optional(ContractEventConsumerSelfSchema),
|
|
70
69
|
replay: Type.Optional(Type.Union([
|
|
71
70
|
Type.Literal("new"),
|
|
72
71
|
Type.Literal("all"),
|
|
@@ -12,7 +12,13 @@ type ScalarPointerPaths<T, Prefix extends string, Depth extends number> = Depth
|
|
|
12
12
|
[K in Extract<keyof T, string>]-?: NonNullable<T[K]> extends TokenPrimitive ? JoinPointer<Prefix, K> : ScalarPointerPaths<NonNullable<T[K]>, JoinPointer<Prefix, K>, Dec[Depth]>;
|
|
13
13
|
}[Extract<keyof T, string>] : never;
|
|
14
14
|
export type ScalarJsonPointer<T> = ScalarPointerPaths<T, "", 6> extends infer P ? P extends SubjectParam ? P : never : never;
|
|
15
|
+
/**
|
|
16
|
+
* Returns the first schema node reachable by following a payload JSON Pointer.
|
|
17
|
+
*/
|
|
15
18
|
export declare function getSubschemaAtDataPointer(schema: unknown, pointer: string): unknown | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* Verifies that event subject parameter pointers resolve to tokenable schemas.
|
|
21
|
+
*/
|
|
16
22
|
export declare function assertDataPointersExistAndAreTokenable(name: string, schema: unknown, pointers: readonly string[]): void;
|
|
17
23
|
export {};
|
|
18
24
|
//# sourceMappingURL=schema_pointers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema_pointers.d.ts","sourceRoot":"","sources":["../../src/contract_support/schema_pointers.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,IAAI,MAAM,EAAE,CAAC;AAExC,KAAK,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AACtD,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtC,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,CAAC,SAAS,aAAa,GAAG,KAAK,GACtE,CAAC,SAAS,SAAS,OAAO,EAAE,GAAG,KAAK,GACpC,CAAC,SAAS,IAAI,GAAG,KAAK,GACtB,CAAC,SAAS,QAAQ,GAAG,KAAK,GAC1B,IAAI,GACJ,KAAK,CAAC;AAEV,KAAK,WAAW,CAAC,MAAM,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,IAAI,MAAM,SAAS,EAAE,GAC3E,IAAI,GAAG,EAAE,GACT,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC;AAEvB,KAAK,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7C,KAAK,YAAY,CACf,CAAC,EACD,MAAM,SAAS,MAAM,EACrB,KAAK,SAAS,MAAM,IAClB,KAAK,SAAS,CAAC,GAAG,KAAK,GACvB,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG;KAC7B,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAC5B,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GACtB,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;CACxE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC3B,KAAK,CAAC;AAEV,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,GAC/D,CAAC,SAAS,YAAY,GAAG,CAAC,GAC1B,KAAK,GACL,KAAK,CAAC;AAEV,KAAK,kBAAkB,CACrB,CAAC,EACD,MAAM,SAAS,MAAM,EACrB,KAAK,SAAS,MAAM,IAClB,KAAK,SAAS,CAAC,GAAG,KAAK,GACvB,aAAa,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG;KAC7B,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAClD,cAAc,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GACrC,kBAAkB,CAClB,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EACtB,GAAG,CAAC,KAAK,CAAC,CACX;CACJ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC3B,KAAK,CAAC;AAEV,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,GAC3E,CAAC,SAAS,YAAY,GAAG,CAAC,GAC1B,KAAK,GACL,KAAK,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"schema_pointers.d.ts","sourceRoot":"","sources":["../../src/contract_support/schema_pointers.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,53 @@ function isJsonObject(value) {
|
|
|
4
4
|
function decodeJsonPointerSegment(segment) {
|
|
5
5
|
return segment.replaceAll("~1", "/").replaceAll("~0", "~");
|
|
6
6
|
}
|
|
7
|
-
function
|
|
7
|
+
function pointerResolution(found, schemas) {
|
|
8
|
+
return { found, schemas };
|
|
9
|
+
}
|
|
10
|
+
function collectSubschemas(schema, segments) {
|
|
11
|
+
if (segments.length === 0)
|
|
12
|
+
return pointerResolution(true, [schema]);
|
|
13
|
+
if (!isJsonObject(schema))
|
|
14
|
+
return pointerResolution(false, []);
|
|
15
|
+
const resolved = [];
|
|
16
|
+
let found = false;
|
|
17
|
+
const properties = schema.properties;
|
|
18
|
+
const segment = segments[0];
|
|
19
|
+
if (segment !== undefined && isJsonObject(properties) &&
|
|
20
|
+
Object.hasOwn(properties, segment)) {
|
|
21
|
+
const direct = collectSubschemas(properties[segment], segments.slice(1));
|
|
22
|
+
found = found || direct.found;
|
|
23
|
+
resolved.push(...direct.schemas);
|
|
24
|
+
}
|
|
25
|
+
const allOf = schema.allOf;
|
|
26
|
+
if (Array.isArray(allOf)) {
|
|
27
|
+
for (const branch of allOf) {
|
|
28
|
+
const branchResult = collectSubschemas(branch, segments);
|
|
29
|
+
found = found || branchResult.found;
|
|
30
|
+
resolved.push(...branchResult.schemas);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
for (const key of ["anyOf", "oneOf"]) {
|
|
34
|
+
const variants = schema[key];
|
|
35
|
+
if (!Array.isArray(variants) || variants.length === 0)
|
|
36
|
+
continue;
|
|
37
|
+
const variantSchemas = [];
|
|
38
|
+
let everyVariantResolved = true;
|
|
39
|
+
for (const variant of variants) {
|
|
40
|
+
const variantResult = collectSubschemas(variant, segments);
|
|
41
|
+
if (!variantResult.found) {
|
|
42
|
+
everyVariantResolved = false;
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
variantSchemas.push(...variantResult.schemas);
|
|
46
|
+
}
|
|
47
|
+
if (everyVariantResolved)
|
|
48
|
+
found = true;
|
|
49
|
+
resolved.push(...variantSchemas);
|
|
50
|
+
}
|
|
51
|
+
return pointerResolution(found, resolved);
|
|
52
|
+
}
|
|
53
|
+
function resolveFirstSubschema(schema, segments) {
|
|
8
54
|
if (segments.length === 0)
|
|
9
55
|
return schema;
|
|
10
56
|
if (!isJsonObject(schema))
|
|
@@ -14,7 +60,7 @@ function resolveSubschema(schema, segments) {
|
|
|
14
60
|
if (!Array.isArray(variants))
|
|
15
61
|
continue;
|
|
16
62
|
for (const variant of variants) {
|
|
17
|
-
const resolved =
|
|
63
|
+
const resolved = resolveFirstSubschema(variant, segments);
|
|
18
64
|
if (resolved !== undefined)
|
|
19
65
|
return resolved;
|
|
20
66
|
}
|
|
@@ -26,7 +72,7 @@ function resolveSubschema(schema, segments) {
|
|
|
26
72
|
if (!isJsonObject(properties) || !Object.hasOwn(properties, segment)) {
|
|
27
73
|
return undefined;
|
|
28
74
|
}
|
|
29
|
-
return
|
|
75
|
+
return resolveFirstSubschema(properties[segment], segments.slice(1));
|
|
30
76
|
}
|
|
31
77
|
function isTokenableSchema(schema) {
|
|
32
78
|
if (schema === true || schema === false)
|
|
@@ -63,16 +109,22 @@ function isTokenableSchema(schema) {
|
|
|
63
109
|
}
|
|
64
110
|
return false;
|
|
65
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* Returns the first schema node reachable by following a payload JSON Pointer.
|
|
114
|
+
*/
|
|
66
115
|
export function getSubschemaAtDataPointer(schema, pointer) {
|
|
67
|
-
return
|
|
116
|
+
return resolveFirstSubschema(schema, pointer.slice(1).split("/").map(decodeJsonPointerSegment));
|
|
68
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Verifies that event subject parameter pointers resolve to tokenable schemas.
|
|
120
|
+
*/
|
|
69
121
|
export function assertDataPointersExistAndAreTokenable(name, schema, pointers) {
|
|
70
122
|
for (const pointer of pointers) {
|
|
71
|
-
const
|
|
72
|
-
if (
|
|
123
|
+
const resolved = collectSubschemas(schema, pointer.slice(1).split("/").map(decodeJsonPointerSegment));
|
|
124
|
+
if (!resolved.found) {
|
|
73
125
|
throw new Error(`Invalid event subject param pointer '${pointer}' for event '${name}' (path not found in schema)`);
|
|
74
126
|
}
|
|
75
|
-
if (!isTokenableSchema
|
|
127
|
+
if (!resolved.schemas.every(isTokenableSchema)) {
|
|
76
128
|
throw new Error(`Invalid event subject param pointer '${pointer}' for event '${name}' (must resolve to string/number schema)`);
|
|
77
129
|
}
|
|
78
130
|
}
|
package/esm/contracts.js
CHANGED
package/esm/device.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import "./_dnt.polyfills.js";
|
|
2
|
-
import { type NatsConnection } from "@nats-io/nats-core";
|
|
3
2
|
import { AsyncResult, UnexpectedError } from "@qlever-llc/result";
|
|
4
3
|
import { CONTRACT_STATE_METADATA, type ContractStateMetadata } from "./contract_support/mod.js";
|
|
5
4
|
import type { TrellisAPI } from "./contracts.js";
|
|
@@ -49,22 +48,8 @@ export type TrellisDeviceConnection<TApi extends TrellisAPI = TrellisAPI, TState
|
|
|
49
48
|
readonly stream: string;
|
|
50
49
|
readonly api: TApi;
|
|
51
50
|
readonly connection: TrellisConnection;
|
|
52
|
-
readonly natsConnection: NatsConnection;
|
|
53
51
|
readonly health: ServiceHealth;
|
|
54
52
|
};
|
|
55
|
-
type DeviceConnectTransport = {
|
|
56
|
-
connect(options: {
|
|
57
|
-
servers: string | string[];
|
|
58
|
-
token?: string;
|
|
59
|
-
authenticator?: unknown;
|
|
60
|
-
inboxPrefix?: string;
|
|
61
|
-
maxReconnectAttempts?: number;
|
|
62
|
-
}): Promise<NatsConnection>;
|
|
63
|
-
};
|
|
64
|
-
type DeviceConnectDeps = {
|
|
65
|
-
loadTransport(): Promise<DeviceConnectTransport>;
|
|
66
|
-
now(): number;
|
|
67
|
-
};
|
|
68
53
|
export type TrellisDevicePendingActivationState = {
|
|
69
54
|
status: "pending";
|
|
70
55
|
contractDigest: string;
|
|
@@ -126,20 +111,6 @@ export type TrellisDeviceConnectArgs<TApi extends TrellisAPI = TrellisAPI, TCont
|
|
|
126
111
|
rootSecret: Uint8Array | string;
|
|
127
112
|
log?: LoggerLike | false;
|
|
128
113
|
};
|
|
129
|
-
export declare function startDeviceActivationWithDeps<TContract extends DeviceContract<TrellisAPI, {
|
|
130
|
-
state?: Readonly<Record<string, unknown>>;
|
|
131
|
-
schemas?: Readonly<Record<string, unknown>>;
|
|
132
|
-
}>>(args: TrellisDeviceActivationArgs<DeviceContractApi<TContract>, TContract>, _deps: Pick<DeviceConnectDeps, "now">): Promise<TrellisDeviceActivationSession<TrellisDevicePendingActivationState>>;
|
|
133
|
-
export declare function resumeDeviceActivationWithDeps<TLocalState extends TrellisDeviceLocalActivationState, TContract extends DeviceContract<TrellisAPI, {
|
|
134
|
-
state?: Readonly<Record<string, unknown>>;
|
|
135
|
-
schemas?: Readonly<Record<string, unknown>>;
|
|
136
|
-
}>>(args: TrellisDeviceResumeActivationArgs<DeviceContractApi<TContract>, TContract> & {
|
|
137
|
-
localState: TLocalState;
|
|
138
|
-
}, _deps: Pick<DeviceConnectDeps, "now">): Promise<TrellisDeviceActivationSession<TLocalState>>;
|
|
139
|
-
export declare function connectDeviceWithDeps<TContract extends DeviceContract<TrellisAPI, {
|
|
140
|
-
state?: Readonly<Record<string, unknown>>;
|
|
141
|
-
schemas?: Readonly<Record<string, unknown>>;
|
|
142
|
-
}>>(args: TrellisDeviceConnectArgs<DeviceContractApi<TContract>, TContract>, deps: DeviceConnectDeps): Promise<TrellisDeviceConnection<DeviceContractApi<TContract>, RuntimeStateStoresForContract<TContract>>>;
|
|
143
114
|
export declare const TrellisDevice: {
|
|
144
115
|
connect<TContract extends DeviceContract<TrellisAPI, {
|
|
145
116
|
state?: Readonly<Record<string, unknown>>;
|
package/esm/device.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../src/device.ts"],"names":[],"mappings":"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"}
|
package/esm/device.js
CHANGED
|
@@ -360,6 +360,9 @@ async function fetchDeviceBootstrap(args) {
|
|
|
360
360
|
context: { trellisUrl: args.trellisUrl },
|
|
361
361
|
});
|
|
362
362
|
}
|
|
363
|
+
/**
|
|
364
|
+
* @internal Exported for focused tests and platform-specific wrappers.
|
|
365
|
+
*/
|
|
363
366
|
export async function startDeviceActivationWithDeps(args, _deps) {
|
|
364
367
|
const rootSecret = normalizeRootSecret(args.rootSecret);
|
|
365
368
|
const identity = await deriveDeviceIdentity(rootSecret);
|
|
@@ -389,6 +392,9 @@ export async function startDeviceActivationWithDeps(args, _deps) {
|
|
|
389
392
|
},
|
|
390
393
|
});
|
|
391
394
|
}
|
|
395
|
+
/**
|
|
396
|
+
* @internal Exported for focused tests and platform-specific wrappers.
|
|
397
|
+
*/
|
|
392
398
|
export async function resumeDeviceActivationWithDeps(args, _deps) {
|
|
393
399
|
const rootSecret = normalizeRootSecret(args.rootSecret);
|
|
394
400
|
const identity = await deriveDeviceIdentity(rootSecret);
|
|
@@ -399,6 +405,10 @@ export async function resumeDeviceActivationWithDeps(args, _deps) {
|
|
|
399
405
|
localState: args.localState,
|
|
400
406
|
});
|
|
401
407
|
}
|
|
408
|
+
/**
|
|
409
|
+
* @internal Exported for focused tests; applications should use
|
|
410
|
+
* `TrellisDevice.connect`.
|
|
411
|
+
*/
|
|
402
412
|
export async function connectDeviceWithDeps(args, deps) {
|
|
403
413
|
const log = resolveDeviceLogger(args.log);
|
|
404
414
|
const rootSecret = normalizeRootSecret(args.rootSecret);
|
|
@@ -538,7 +548,6 @@ export async function connectDeviceWithDeps(args, deps) {
|
|
|
538
548
|
stream: trellis.stream,
|
|
539
549
|
api: trellis.api,
|
|
540
550
|
connection: trellis.connection,
|
|
541
|
-
natsConnection: trellis.natsConnection,
|
|
542
551
|
health,
|
|
543
552
|
};
|
|
544
553
|
}
|
package/esm/errors/index.js
CHANGED
package/esm/index.d.ts
CHANGED
|
@@ -23,15 +23,14 @@ export type { TrellisErrorInstance } from "./errors/index.js";
|
|
|
23
23
|
export { AuthError, KVError, OperationAlreadyTerminalError, OperationMismatchError, OperationNotFoundError, RemoteError, StoreError, TransferError, TransportError, TrellisError, UnexpectedError, ValidationError, } from "./errors/index.js";
|
|
24
24
|
export { ActiveJob, JobLogEntrySchema, JobProgressSchema, JobQueue, JobRef, JobWorkerHostAdapter, } from "./jobs.js";
|
|
25
25
|
export type { Job, JobFilter, JobIdentity, JobLogEntry, JobProgress, JobsFacade, JobsFacadeOf, JobsHealth, JobSnapshot, JobState, JobTypeMetadata, JobWorkerHost, ServiceInfo, TerminalJob, WorkerInfo, } from "./jobs.js";
|
|
26
|
-
export {
|
|
26
|
+
export { TypedKVEntry } from "./kv.js";
|
|
27
27
|
export type { WatchEvent, WatchOptions } from "./kv.js";
|
|
28
|
-
export {
|
|
28
|
+
export { TypedStoreEntry } from "./store.js";
|
|
29
29
|
export type { StoreBody, StoreInfo, StoreOpenOptions, StorePutOptions, StoreStatus, StoreWaitOptions, } from "./store.js";
|
|
30
|
-
export {
|
|
30
|
+
export { FileInfoSchema } from "./transfer.js";
|
|
31
31
|
export type { FileInfo, ReceiveTransferGrant, ReceiveTransferHandle, SendTransferGrant, SendTransferHandle, TransferBody, TransferGrant, } from "./transfer.js";
|
|
32
32
|
export type { AcceptedOperationEvent, CancelledOperationEvent, CompletedOperationEvent, CompletedTransfer, FailedOperationEvent, OperationControlError, OperationEvent, OperationInputBuilder, OperationLifecycleError, OperationObserverCallbacks, OperationRef, OperationRefData, OperationSignalAck, OperationSnapshot, OperationState, OperationTransferProgress, ProgressOperationEvent, ProgressOperationSnapshot, StartedOperationEvent, StartedTransfer, TerminalOperation, TransferCapableOperationInputBuilder, TransferOperationBuilder, TransferOperationEvent, TransferOperationSnapshot, } from "./operations.js";
|
|
33
33
|
export { controlSubject, OperationInvoker } from "./operations.js";
|
|
34
34
|
export type { AcceptedOperation, ClientTrellis, ConnectedTrellisClient, EventHandler, EventListenerContext, EventName, EventOpts, EventPayload, EventType, FeedInputBuilder, FeedSubscribeOpts, FeedSubscription, HandlerJobQueue, HandlerJobsFacade, HandlerKvFacade, HandlerStoreHandle, HandlerTrellis, HandlerTrellisForContract, MapStateStoreClient, OperationHandlerContext, OperationRegistration, OperationRuntimeHandle, OperationTransferContextOf, OperationTransferHandle, PreparedTrellisEvent, RequestOpts, RpcArgs, RpcHandlerContext, RpcHandlerErrorOf, RpcHandlerFn, RpcInputOf, RpcMethodNameOf, RpcOutputOf, RpcRequestErrorOf, RpcResult, RuntimeStateStoresForContract, RuntimeStateStoreShape, StateFacade, TrellisFor, ValueStateStoreClient, } from "./trellis.js";
|
|
35
|
-
export { Trellis } from "./trellis.js";
|
|
36
35
|
export type { TrellisDeviceConnection } from "./device.js";
|
|
37
36
|
//# sourceMappingURL=index.d.ts.map
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/esm/index.js
CHANGED
|
@@ -11,8 +11,7 @@ export { ClientAuthHandledError, TrellisClient } from "./client_connect.js";
|
|
|
11
11
|
export { TrellisDevice } from "./device.js";
|
|
12
12
|
export { AuthError, KVError, OperationAlreadyTerminalError, OperationMismatchError, OperationNotFoundError, RemoteError, StoreError, TransferError, TransportError, TrellisError, UnexpectedError, ValidationError, } from "./errors/index.js";
|
|
13
13
|
export { ActiveJob, JobLogEntrySchema, JobProgressSchema, JobQueue, JobRef, JobWorkerHostAdapter, } from "./jobs.js";
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
14
|
+
export { TypedKVEntry } from "./kv.js";
|
|
15
|
+
export { TypedStoreEntry } from "./store.js";
|
|
16
|
+
export { FileInfoSchema } from "./transfer.js";
|
|
17
17
|
export { controlSubject, OperationInvoker } from "./operations.js";
|
|
18
|
-
export { Trellis } from "./trellis.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime_transport.d.ts","sourceRoot":"","sources":["../src/runtime_transport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAExE,KAAK,yBAAyB,GAAG;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,SAAS,CAAC,EAAE,yBAAyB,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,sCAAsC,KAAK,CAAC;AACzD,eAAO,MAAM,6CAA6C,OAAO,CAAC;AAElE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAC3E,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime_transport.d.ts","sourceRoot":"","sources":["../src/runtime_transport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAExE,KAAK,yBAAyB,GAAG;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,SAAS,CAAC,EAAE,yBAAyB,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,sCAAsC,KAAK,CAAC;AACzD,eAAO,MAAM,6CAA6C,OAAO,CAAC;AAElE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAC3E,CAAC;AAQF,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,iBAAiB,GAC5B,MAAM,EAAE,CAkBV;AAuDD,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,gBAAgB,CAAC,CA0B7E"}
|
package/esm/runtime_transport.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as dntShim from "./_dnt.shims.js";
|
|
2
1
|
import { wsconnect } from "@nats-io/nats-core";
|
|
3
2
|
export const DEFAULT_RUNTIME_MAX_RECONNECT_ATTEMPTS = -1;
|
|
4
3
|
export const DEFAULT_SERVICE_RUNTIME_WAIT_ON_FIRST_CONNECT = true;
|
|
@@ -22,7 +21,10 @@ export function selectRuntimeTransportServers(transports) {
|
|
|
22
21
|
throw new Error("No supported NATS transport endpoints available");
|
|
23
22
|
}
|
|
24
23
|
function isBrowserRuntime() {
|
|
25
|
-
|
|
24
|
+
const load = new Function("return globalThis");
|
|
25
|
+
const browserGlobal = load();
|
|
26
|
+
return typeof browserGlobal.window !== "undefined" &&
|
|
27
|
+
typeof browserGlobal.document !== "undefined";
|
|
26
28
|
}
|
|
27
29
|
function isDenoRuntime() {
|
|
28
30
|
const load = new Function("return globalThis");
|
|
@@ -3,8 +3,10 @@ import { type HealthCheckFn, type HealthResponse } from "./health.js";
|
|
|
3
3
|
type HealthRpcServer = {
|
|
4
4
|
name: string;
|
|
5
5
|
api: TrellisAPI;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
connection?: {
|
|
7
|
+
status: {
|
|
8
|
+
phase: string;
|
|
9
|
+
};
|
|
8
10
|
};
|
|
9
11
|
mount<M extends keyof TrellisAPI["rpc"] & string>(method: M, handler: (...args: unknown[]) => unknown): Promise<unknown>;
|
|
10
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health_rpc.d.ts","sourceRoot":"","sources":["../../src/server/health_rpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,cAAc,EAEpB,MAAM,aAAa,CAAC;AAErB,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"health_rpc.d.ts","sourceRoot":"","sources":["../../src/server/health_rpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,cAAc,EAEpB,MAAM,aAAa,CAAC;AAErB,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC;IAChB,UAAU,CAAC,EAAE;QAAE,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC3C,KAAK,CAAC,CAAC,SAAS,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,EAC9C,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GACvC,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB,CAAC;AAUF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,eAAe,EACvB,IAAI,CAAC,EAAE;IACL,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;CAC1C,GACA,OAAO,CAAC,IAAI,CAAC,CAqBf"}
|
package/esm/server/health_rpc.js
CHANGED
|
@@ -14,10 +14,15 @@ export async function mountStandardHealthRpc(server, opts) {
|
|
|
14
14
|
return;
|
|
15
15
|
const method = rpcName;
|
|
16
16
|
await server.mount(method, async () => {
|
|
17
|
+
const connection = server.connection;
|
|
17
18
|
const response = opts?.response
|
|
18
19
|
? await opts.response()
|
|
19
20
|
: await runAllHealthChecks(server.name, {
|
|
20
|
-
|
|
21
|
+
...(connection
|
|
22
|
+
? {
|
|
23
|
+
nats: async () => Result.ok(connection.status.phase !== "closed"),
|
|
24
|
+
}
|
|
25
|
+
: {}),
|
|
21
26
|
...(opts?.checks ?? {}),
|
|
22
27
|
});
|
|
23
28
|
return Result.ok(response);
|
package/esm/server/service.d.ts
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { type
|
|
1
|
+
import type { StoreError } from "../errors/index.js";
|
|
2
|
+
import { TypedKV } from "../kv.js";
|
|
3
|
+
import { type StoreWaitOptions, TypedStore, TypedStoreEntry } from "../store.js";
|
|
4
4
|
import { type TrellisAuth as SessionAuth } from "../auth.js";
|
|
5
5
|
import { type InferSchemaType } from "../contracts.js";
|
|
6
6
|
import type { TrellisAPI } from "../contracts.js";
|
|
7
7
|
import type { TrellisContractV1 } from "../contract_support/mod.js";
|
|
8
|
-
import type {
|
|
8
|
+
import type { ContractJobsMetadata, ContractKvMetadata } from "../contract_support/mod.js";
|
|
9
9
|
import { CONTRACT_JOBS_METADATA, CONTRACT_KV_METADATA } from "../contract_support/mod.js";
|
|
10
10
|
import { AsyncResult, type BaseError, type MaybeAsync, Result } from "@qlever-llc/result";
|
|
11
11
|
import { type HealthCheckFn, ServiceHealth, type ServiceHealthCheck, type ServiceHealthInfo } from "./health.js";
|
|
12
12
|
import type { EventDesc } from "../contracts.js";
|
|
13
13
|
import type { AcceptedOperation, ActiveEventFacade, EventListenerContext, EventOpts, FeedEventOf, FeedInputOf, FeedRegistration as RootFeedRegistration, HandlerTrellis, OperationHandlerContext, OperationOutputOf, OperationProgressOf, OperationRuntimeHandle, OperationTransferContextOf, PreparedTrellisEvent, RpcHandlerContext, RpcHandlerErrorOf } from "../trellis.js";
|
|
14
|
-
import type { NatsConnectOpts
|
|
15
|
-
import { ServiceTransfer } from "./transfer.js";
|
|
14
|
+
import type { NatsConnectOpts } from "./runtime.js";
|
|
16
15
|
import { type LoggerLike } from "../globals.js";
|
|
17
16
|
import { TransferError, TransportError, UnexpectedError, ValidationError } from "../errors/index.js";
|
|
18
17
|
import type { ReceiveTransferGrant } from "../transfer.js";
|
|
@@ -104,17 +103,13 @@ export type ResourceBindings = {
|
|
|
104
103
|
jobs?: ResourceBindingJobs;
|
|
105
104
|
eventConsumers?: Record<string, ResourceBindingEventConsumer>;
|
|
106
105
|
};
|
|
107
|
-
declare
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
#private;
|
|
111
|
-
readonly binding: ResourceBindingStore;
|
|
112
|
-
constructor(nc: NatsConnection, binding: ResourceBindingStore, token: typeof storeHandleConstructorToken);
|
|
113
|
-
open(): AsyncResult<TypedStore, StoreError>;
|
|
106
|
+
export declare abstract class StoreHandle {
|
|
107
|
+
abstract readonly binding: ResourceBindingStore;
|
|
108
|
+
abstract open(): AsyncResult<TypedStore, StoreError>;
|
|
114
109
|
/**
|
|
115
110
|
* Waits for a staged object to appear in the bound store and returns its entry.
|
|
116
111
|
*/
|
|
117
|
-
waitFor(key: string, options?: StoreWaitOptions): AsyncResult<TypedStoreEntry, StoreError>;
|
|
112
|
+
abstract waitFor(key: string, options?: StoreWaitOptions): AsyncResult<TypedStoreEntry, StoreError>;
|
|
118
113
|
}
|
|
119
114
|
type TrellisServiceRuntimeConnectOpts<TOwnedApi extends TrellisAPI = TrellisAPI, TTrellisApi extends TrellisAPI = TOwnedApi> = {
|
|
120
115
|
/**
|
|
@@ -317,7 +312,7 @@ type BoundServiceHealth<TDeps> = Omit<ServiceHealth, "add" | "setInfo"> & {
|
|
|
317
312
|
add(name: string, check: HealthCheckHandler<TDeps>): () => void;
|
|
318
313
|
};
|
|
319
314
|
/** Service wrapper returned by `TrellisService.with(deps)`. */
|
|
320
|
-
export type BoundTrellisService<TOwnedApi extends TrellisAPI = TrellisAPI, TTrellisApi extends TrellisAPI = TOwnedApi, TJobs extends ContractJobsMetadata = {}, TKv extends ContractKvMetadata = ContractKvMetadata, TDeps = unknown> = Pick<TrellisService<TOwnedApi, TTrellisApi, TJobs, TKv>, "name" | "auth" | "
|
|
315
|
+
export type BoundTrellisService<TOwnedApi extends TrellisAPI = TrellisAPI, TTrellisApi extends TrellisAPI = TOwnedApi, TJobs extends ContractJobsMetadata = {}, TKv extends ContractKvMetadata = ContractKvMetadata, TDeps = unknown> = Pick<TrellisService<TOwnedApi, TTrellisApi, TJobs, TKv>, "name" | "auth" | "kv" | "store" | "connection" | "createTransfer" | "completeOperation" | "wait" | "stop"> & {
|
|
321
316
|
readonly event: BoundActiveEventFacade<TTrellisApi, TTrellisApi, TKv, TJobs, TDeps>;
|
|
322
317
|
readonly health: BoundServiceHealth<TDeps>;
|
|
323
318
|
readonly jobs: BoundJobsFacadeOf<TJobs, TTrellisApi, TKv, TDeps>;
|
|
@@ -398,23 +393,10 @@ export type TrellisServiceInternalConnectArgs<TOwnedApi extends TrellisAPI = Tre
|
|
|
398
393
|
contractDigest: string;
|
|
399
394
|
contractKv?: TKv;
|
|
400
395
|
};
|
|
401
|
-
export declare function createConnectedService<TOwnedApi extends TrellisAPI, TTrellisApi extends TrellisAPI, TJobs extends ContractJobsMetadata = {}, TKv extends ContractKvMetadata = ContractKvMetadata>(args: {
|
|
402
|
-
name: string;
|
|
403
|
-
auth: SessionAuth;
|
|
404
|
-
nc: NatsConnection;
|
|
405
|
-
contractId?: string;
|
|
406
|
-
contractDigest?: string;
|
|
407
|
-
contractJobs: TJobs;
|
|
408
|
-
contractKv: TKv;
|
|
409
|
-
contractEventConsumers?: ContractEventConsumers;
|
|
410
|
-
server: TrellisServiceRuntimeCreateOpts<TOwnedApi, TTrellisApi>;
|
|
411
|
-
bindings: ResourceBindings;
|
|
412
|
-
}): Promise<TrellisService<TOwnedApi, TTrellisApi, TJobs, TKv>>;
|
|
413
396
|
export declare class TrellisService<TOwnedApi extends TrellisAPI = TrellisAPI, TTrellisApi extends TrellisAPI = TOwnedApi, TJobs extends ContractJobsMetadata = {}, TKv extends ContractKvMetadata = ContractKvMetadata> {
|
|
414
397
|
#private;
|
|
415
398
|
readonly name: string;
|
|
416
399
|
readonly auth: SessionAuth;
|
|
417
|
-
readonly nc: NatsConnection;
|
|
418
400
|
/** Event lifecycle surface for service startup listeners and publishers. */
|
|
419
401
|
readonly event: ActiveEventFacade<TTrellisApi>;
|
|
420
402
|
readonly kv: ServiceKvFacade<TKv>;
|
|
@@ -424,7 +406,7 @@ export declare class TrellisService<TOwnedApi extends TrellisAPI = TrellisAPI, T
|
|
|
424
406
|
readonly handle: TypedServiceHandleFacade<TOwnedApi, TTrellisApi, TKv, TJobs>;
|
|
425
407
|
/** Framework-neutral lifecycle handle for the service runtime connection. */
|
|
426
408
|
readonly connection: TrellisConnection;
|
|
427
|
-
constructor(
|
|
409
|
+
private constructor();
|
|
428
410
|
/**
|
|
429
411
|
* Returns a service wrapper that injects application dependencies into
|
|
430
412
|
* service-owned handler argument objects as `args.deps`.
|
|
@@ -440,14 +422,7 @@ export declare class TrellisService<TOwnedApi extends TrellisAPI = TrellisAPI, T
|
|
|
440
422
|
sessionKey: string;
|
|
441
423
|
expiresInMs?: number;
|
|
442
424
|
}): AsyncResult<ReceiveTransferGrant, TransferError>;
|
|
443
|
-
|
|
444
|
-
* Completes an operation from Trellis-owned control-plane code that resolves
|
|
445
|
-
* an operation from a separate RPC handler.
|
|
446
|
-
*
|
|
447
|
-
* @internal
|
|
448
|
-
*/
|
|
449
|
-
completeOperation(operationId: string, output: unknown): AsyncResult<unknown, BaseError>;
|
|
450
|
-
static connect<const TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata, ContractKvMetadata>>(args: TrellisServiceConnectArgs<TContract>, deps?: Partial<TrellisServiceRuntimeDeps>): AsyncResult<TrellisService<ContractOwnedApi<TContract>, ContractTrellisApi<TContract>, ContractJobsOf<TContract>, ContractKvOf<TContract>>, TransportError | UnexpectedError>;
|
|
425
|
+
static connect<const TContract extends ServiceContract<TrellisAPI, TrellisAPI | undefined, ContractJobsMetadata, ContractKvMetadata>>(args: TrellisServiceConnectArgs<TContract>): AsyncResult<TrellisService<ContractOwnedApi<TContract>, ContractTrellisApi<TContract>, ContractJobsOf<TContract>, ContractKvOf<TContract>>, TransportError | UnexpectedError>;
|
|
451
426
|
wait(): Promise<void>;
|
|
452
427
|
stop(): Promise<void>;
|
|
453
428
|
}
|