@dxos/protocols 0.8.0 → 0.8.1-main.81238a8
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/dist/cjs/src/buf/proto/gen/dxos/client/services_pb.d.ts +104 -1
- package/dist/cjs/src/buf/proto/gen/dxos/client/services_pb.d.ts.map +1 -1
- package/dist/cjs/src/buf/proto/gen/dxos/client/services_pb.js +44 -19
- package/dist/cjs/src/buf/proto/gen/dxos/client/services_pb.js.map +1 -1
- package/dist/cjs/src/buf/proto/gen/dxos/edge/signal_pb.d.ts +14 -0
- package/dist/cjs/src/buf/proto/gen/dxos/edge/signal_pb.d.ts.map +1 -1
- package/dist/cjs/src/buf/proto/gen/dxos/edge/signal_pb.js +11 -6
- package/dist/cjs/src/buf/proto/gen/dxos/edge/signal_pb.js.map +1 -1
- package/dist/cjs/src/edge-error.d.ts +26 -0
- package/dist/cjs/src/edge-error.d.ts.map +1 -0
- package/dist/cjs/src/edge-error.js +63 -0
- package/dist/cjs/src/edge-error.js.map +1 -0
- package/dist/cjs/src/edge.d.ts +25 -25
- package/dist/cjs/src/edge.d.ts.map +1 -1
- package/dist/cjs/src/edge.js +13 -57
- package/dist/cjs/src/edge.js.map +1 -1
- package/dist/cjs/src/index.d.ts +2 -0
- package/dist/cjs/src/index.d.ts.map +1 -1
- package/dist/cjs/src/index.js +2 -0
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/invitation.d.ts +1 -1
- package/dist/cjs/src/invitation.d.ts.map +1 -1
- package/dist/cjs/src/invitation.js +6 -5
- package/dist/cjs/src/invitation.js.map +1 -1
- package/dist/cjs/src/proto/gen/dxos/client/services.d.ts +45 -0
- package/dist/cjs/src/proto/gen/dxos/client/services.d.ts.map +1 -1
- package/dist/cjs/src/proto/gen/dxos/client/services.js.map +1 -1
- package/dist/cjs/src/proto/gen/dxos/edge/signal.d.ts +7 -0
- package/dist/cjs/src/proto/gen/dxos/edge/signal.d.ts.map +1 -1
- package/dist/cjs/src/proto/gen/index.d.ts +6 -0
- package/dist/cjs/src/proto/gen/index.d.ts.map +1 -1
- package/dist/cjs/src/proto/gen/index.js +1 -1
- package/dist/cjs/src/proto/gen/index.js.map +1 -1
- package/dist/cjs/src/space-archive.d.ts +55 -0
- package/dist/cjs/src/space-archive.d.ts.map +1 -0
- package/dist/cjs/src/space-archive.js +29 -0
- package/dist/cjs/src/space-archive.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/src/buf/proto/gen/dxos/client/services_pb.d.ts +104 -1
- package/dist/esm/src/buf/proto/gen/dxos/client/services_pb.d.ts.map +1 -1
- package/dist/esm/src/buf/proto/gen/dxos/client/services_pb.js +42 -17
- package/dist/esm/src/buf/proto/gen/dxos/client/services_pb.js.map +1 -1
- package/dist/esm/src/buf/proto/gen/dxos/edge/signal_pb.d.ts +14 -0
- package/dist/esm/src/buf/proto/gen/dxos/edge/signal_pb.d.ts.map +1 -1
- package/dist/esm/src/buf/proto/gen/dxos/edge/signal_pb.js +10 -5
- package/dist/esm/src/buf/proto/gen/dxos/edge/signal_pb.js.map +1 -1
- package/dist/esm/src/edge-error.d.ts +26 -0
- package/dist/esm/src/edge-error.d.ts.map +1 -0
- package/dist/esm/src/edge-error.js +62 -0
- package/dist/esm/src/edge-error.js.map +1 -0
- package/dist/esm/src/edge.d.ts +25 -25
- package/dist/esm/src/edge.d.ts.map +1 -1
- package/dist/esm/src/edge.js +12 -58
- package/dist/esm/src/edge.js.map +1 -1
- package/dist/esm/src/index.d.ts +2 -0
- package/dist/esm/src/index.d.ts.map +1 -1
- package/dist/esm/src/index.js +2 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/invitation.d.ts +1 -1
- package/dist/esm/src/invitation.d.ts.map +1 -1
- package/dist/esm/src/invitation.js +2 -1
- package/dist/esm/src/invitation.js.map +1 -1
- package/dist/esm/src/proto/gen/dxos/client/services.d.ts +45 -0
- package/dist/esm/src/proto/gen/dxos/client/services.d.ts.map +1 -1
- package/dist/esm/src/proto/gen/dxos/client/services.js.map +1 -1
- package/dist/esm/src/proto/gen/dxos/edge/signal.d.ts +7 -0
- package/dist/esm/src/proto/gen/dxos/edge/signal.d.ts.map +1 -1
- package/dist/esm/src/proto/gen/index.d.ts +6 -0
- package/dist/esm/src/proto/gen/index.d.ts.map +1 -1
- package/dist/esm/src/proto/gen/index.js +1 -1
- package/dist/esm/src/proto/gen/index.js.map +1 -1
- package/dist/esm/src/space-archive.d.ts +55 -0
- package/dist/esm/src/space-archive.d.ts.map +1 -0
- package/dist/esm/src/space-archive.js +26 -0
- package/dist/esm/src/space-archive.js.map +1 -0
- package/package.json +12 -8
- package/src/buf/proto/gen/dxos/client/services_pb.ts +137 -18
- package/src/buf/proto/gen/dxos/edge/signal_pb.ts +22 -5
- package/src/edge-error.ts +79 -0
- package/src/edge.ts +19 -71
- package/src/index.ts +2 -0
- package/src/invitation.ts +3 -1
- package/src/proto/dxos/client/services.proto +29 -0
- package/src/proto/dxos/edge/signal.proto +4 -0
- package/src/proto/gen/dxos/client/services.ts +45 -0
- package/src/proto/gen/dxos/edge/signal.ts +7 -0
- package/src/proto/gen/index.ts +7 -1
- package/src/space-archive.ts +66 -0
package/src/edge.ts
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { Schema as S } from 'effect';
|
|
6
|
+
|
|
7
|
+
import { SpaceId } from '@dxos/keys';
|
|
6
8
|
|
|
7
9
|
// TODO(burdon): Rename EdgerRouterEndpoint?
|
|
8
10
|
export enum EdgeService {
|
|
@@ -138,81 +140,27 @@ export enum EdgeAgentStatus {
|
|
|
138
140
|
NOT_FOUND = 'not_found',
|
|
139
141
|
}
|
|
140
142
|
|
|
141
|
-
export class EdgeCallFailedError extends Error {
|
|
142
|
-
public static fromProcessingFailureCause(cause: Error) {
|
|
143
|
-
return new EdgeCallFailedError({
|
|
144
|
-
reason: 'Error processing request.',
|
|
145
|
-
isRetryable: true,
|
|
146
|
-
cause,
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
public static fromHttpFailure(response: Response) {
|
|
151
|
-
return new EdgeCallFailedError({
|
|
152
|
-
reason: `HTTP code ${response.status}: ${response.statusText}.`,
|
|
153
|
-
isRetryable: isRetryableCode(response.status),
|
|
154
|
-
retryAfterMs: getRetryAfterMillis(response),
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
public static fromUnsuccessfulResponse(response: Response, body: EdgeHttpFailure) {
|
|
159
|
-
return new EdgeCallFailedError({
|
|
160
|
-
reason: body.reason,
|
|
161
|
-
errorData: body.errorData,
|
|
162
|
-
isRetryable: body.errorData == null && response.headers.has('Retry-After'),
|
|
163
|
-
retryAfterMs: getRetryAfterMillis(response),
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
readonly reason: string;
|
|
168
|
-
readonly errorData?: EdgeErrorData;
|
|
169
|
-
readonly isRetryable?: boolean;
|
|
170
|
-
readonly retryAfterMs?: number;
|
|
171
|
-
|
|
172
|
-
constructor(args: {
|
|
173
|
-
reason: string;
|
|
174
|
-
isRetryable?: boolean;
|
|
175
|
-
errorData?: EdgeErrorData;
|
|
176
|
-
retryAfterMs?: number;
|
|
177
|
-
cause?: Error;
|
|
178
|
-
}) {
|
|
179
|
-
super(args.reason, { cause: args.cause });
|
|
180
|
-
this.reason = args.reason;
|
|
181
|
-
this.errorData = args.errorData;
|
|
182
|
-
this.retryAfterMs = args.retryAfterMs;
|
|
183
|
-
this.isRetryable = Boolean(args.isRetryable);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
export class EdgeAuthChallengeError extends EdgeCallFailedError {
|
|
188
|
-
constructor(
|
|
189
|
-
public readonly challenge: string,
|
|
190
|
-
errorData: EdgeErrorData,
|
|
191
|
-
) {
|
|
192
|
-
super({ reason: 'Auth challenge.', errorData, isRetryable: false });
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
143
|
export type EdgeAuthChallenge = {
|
|
197
144
|
type: 'auth_challenge';
|
|
198
145
|
challenge: string;
|
|
199
146
|
};
|
|
200
147
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
};
|
|
148
|
+
export enum OAuthProvider {
|
|
149
|
+
GOOGLE = 'google',
|
|
150
|
+
}
|
|
205
151
|
|
|
206
|
-
export const
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
152
|
+
export const InitiateOAuthFlowRequestSchema = S.Struct({
|
|
153
|
+
provider: S.Enums(OAuthProvider),
|
|
154
|
+
spaceId: S.String.pipe(S.filter(SpaceId.isValid)),
|
|
155
|
+
accessTokenId: S.String,
|
|
156
|
+
scopes: S.mutable(S.Array(S.String)),
|
|
157
|
+
});
|
|
158
|
+
export type InitiateOAuthFlowRequest = S.Schema.Type<typeof InitiateOAuthFlowRequestSchema>;
|
|
211
159
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
// Not Implemented
|
|
215
|
-
return false;
|
|
216
|
-
}
|
|
217
|
-
return !(status >= 400 && status < 500);
|
|
160
|
+
export type InitiateOAuthFlowResponse = {
|
|
161
|
+
authUrl: string;
|
|
218
162
|
};
|
|
163
|
+
|
|
164
|
+
export type OAuthFlowResult =
|
|
165
|
+
| { success: true; accessToken: string; accessTokenId: string }
|
|
166
|
+
| { success: false; reason: string };
|
package/src/index.ts
CHANGED
package/src/invitation.ts
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
// Copyright 2024 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { Schema as S } from 'effect';
|
|
6
|
+
|
|
7
|
+
import { ParamKeyAnnotation } from '@dxos/effect';
|
|
6
8
|
|
|
7
9
|
// TODO(burdon): Use uniformly for processing HTTP params.
|
|
8
10
|
export const InvitationUrl = S.Struct({
|
|
@@ -433,6 +433,28 @@ message JoinBySpaceKeyRequest {
|
|
|
433
433
|
dxos.keys.PublicKey space_key = 1;
|
|
434
434
|
}
|
|
435
435
|
|
|
436
|
+
message SpaceArchive {
|
|
437
|
+
string filename = 1;
|
|
438
|
+
bytes contents = 2;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
message ExportSpaceRequest {
|
|
442
|
+
string space_id = 1;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
message ExportSpaceResponse {
|
|
446
|
+
SpaceArchive archive = 1;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
message ImportSpaceRequest {
|
|
450
|
+
SpaceArchive archive = 1;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
message ImportSpaceResponse {
|
|
454
|
+
/// the ID of the new space.
|
|
455
|
+
string new_space_id = 1;
|
|
456
|
+
}
|
|
457
|
+
|
|
436
458
|
service SpacesService {
|
|
437
459
|
rpc CreateSpace(google.protobuf.Empty) returns (Space);
|
|
438
460
|
rpc UpdateSpace(UpdateSpaceRequest) returns (google.protobuf.Empty);
|
|
@@ -454,6 +476,9 @@ service SpacesService {
|
|
|
454
476
|
rpc QueryCredentials(QueryCredentialsRequest) returns (stream dxos.halo.credentials.Credential);
|
|
455
477
|
|
|
456
478
|
rpc CreateEpoch(CreateEpochRequest) returns (CreateEpochResponse);
|
|
479
|
+
|
|
480
|
+
rpc ExportSpace(ExportSpaceRequest) returns (ExportSpaceResponse);
|
|
481
|
+
rpc ImportSpace(ImportSpaceRequest) returns (ImportSpaceResponse);
|
|
457
482
|
}
|
|
458
483
|
|
|
459
484
|
//
|
|
@@ -555,6 +580,10 @@ service NetworkService {
|
|
|
555
580
|
rpc QueryStatus(google.protobuf.Empty) returns (stream NetworkStatus);
|
|
556
581
|
rpc JoinSwarm(dxos.edge.signal.JoinRequest) returns (google.protobuf.Empty);
|
|
557
582
|
rpc LeaveSwarm(dxos.edge.signal.LeaveRequest) returns (google.protobuf.Empty);
|
|
583
|
+
/**
|
|
584
|
+
* Query the swarm state without joining it.
|
|
585
|
+
*/
|
|
586
|
+
rpc QuerySwarm(dxos.edge.signal.QueryRequest) returns (dxos.edge.messenger.SwarmResponse);
|
|
558
587
|
rpc SubscribeSwarmState(SubscribeSwarmStateRequest) returns (stream dxos.edge.messenger.SwarmResponse);
|
|
559
588
|
rpc SendMessage(dxos.edge.signal.Message) returns (google.protobuf.Empty);
|
|
560
589
|
rpc SubscribeMessages(dxos.edge.messenger.Peer) returns (stream dxos.edge.signal.Message);
|
|
@@ -1170,6 +1170,45 @@ export interface JoinSpaceResponse {
|
|
|
1170
1170
|
export interface JoinBySpaceKeyRequest {
|
|
1171
1171
|
spaceKey: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
|
|
1172
1172
|
}
|
|
1173
|
+
/**
|
|
1174
|
+
* Defined in:
|
|
1175
|
+
* {@link file://./../../../dxos/client/services.proto}
|
|
1176
|
+
*/
|
|
1177
|
+
export interface SpaceArchive {
|
|
1178
|
+
filename: string;
|
|
1179
|
+
contents: Uint8Array;
|
|
1180
|
+
}
|
|
1181
|
+
/**
|
|
1182
|
+
* Defined in:
|
|
1183
|
+
* {@link file://./../../../dxos/client/services.proto}
|
|
1184
|
+
*/
|
|
1185
|
+
export interface ExportSpaceRequest {
|
|
1186
|
+
spaceId: string;
|
|
1187
|
+
}
|
|
1188
|
+
/**
|
|
1189
|
+
* Defined in:
|
|
1190
|
+
* {@link file://./../../../dxos/client/services.proto}
|
|
1191
|
+
*/
|
|
1192
|
+
export interface ExportSpaceResponse {
|
|
1193
|
+
archive: SpaceArchive;
|
|
1194
|
+
}
|
|
1195
|
+
/**
|
|
1196
|
+
* Defined in:
|
|
1197
|
+
* {@link file://./../../../dxos/client/services.proto}
|
|
1198
|
+
*/
|
|
1199
|
+
export interface ImportSpaceRequest {
|
|
1200
|
+
archive: SpaceArchive;
|
|
1201
|
+
}
|
|
1202
|
+
/**
|
|
1203
|
+
* Defined in:
|
|
1204
|
+
* {@link file://./../../../dxos/client/services.proto}
|
|
1205
|
+
*/
|
|
1206
|
+
export interface ImportSpaceResponse {
|
|
1207
|
+
/**
|
|
1208
|
+
* the ID of the new space.
|
|
1209
|
+
*/
|
|
1210
|
+
newSpaceId: string;
|
|
1211
|
+
}
|
|
1173
1212
|
/**
|
|
1174
1213
|
* Defined in:
|
|
1175
1214
|
* {@link file://./../../../dxos/client/services.proto}
|
|
@@ -1198,6 +1237,8 @@ export interface SpacesService {
|
|
|
1198
1237
|
*/
|
|
1199
1238
|
queryCredentials: (request: QueryCredentialsRequest, options?: RequestOptions) => Stream<dxos_halo_credentials.Credential>;
|
|
1200
1239
|
createEpoch: (request: CreateEpochRequest, options?: RequestOptions) => Promise<CreateEpochResponse>;
|
|
1240
|
+
exportSpace: (request: ExportSpaceRequest, options?: RequestOptions) => Promise<ExportSpaceResponse>;
|
|
1241
|
+
importSpace: (request: ImportSpaceRequest, options?: RequestOptions) => Promise<ImportSpaceResponse>;
|
|
1201
1242
|
}
|
|
1202
1243
|
/**
|
|
1203
1244
|
* Defined in:
|
|
@@ -1336,6 +1377,10 @@ export interface NetworkService {
|
|
|
1336
1377
|
queryStatus: (request: void, options?: RequestOptions) => Stream<NetworkStatus>;
|
|
1337
1378
|
joinSwarm: (request: dxos_edge_signal.JoinRequest, options?: RequestOptions) => Promise<void>;
|
|
1338
1379
|
leaveSwarm: (request: dxos_edge_signal.LeaveRequest, options?: RequestOptions) => Promise<void>;
|
|
1380
|
+
/**
|
|
1381
|
+
* Query the swarm state without joining it.
|
|
1382
|
+
*/
|
|
1383
|
+
querySwarm: (request: dxos_edge_signal.QueryRequest, options?: RequestOptions) => Promise<dxos_edge_messenger.SwarmResponse>;
|
|
1339
1384
|
subscribeSwarmState: (request: SubscribeSwarmStateRequest, options?: RequestOptions) => Stream<dxos_edge_messenger.SwarmResponse>;
|
|
1340
1385
|
sendMessage: (request: dxos_edge_signal.Message, options?: RequestOptions) => Promise<void>;
|
|
1341
1386
|
subscribeMessages: (request: dxos_edge_messenger.Peer, options?: RequestOptions) => Stream<dxos_edge_signal.Message>;
|
|
@@ -81,6 +81,13 @@ export interface LeaveRequest {
|
|
|
81
81
|
topic: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
|
|
82
82
|
peer: dxos_edge_messenger.Peer;
|
|
83
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Defined in:
|
|
86
|
+
* {@link file://./../../../dxos/edge/signal.proto}
|
|
87
|
+
*/
|
|
88
|
+
export interface QueryRequest {
|
|
89
|
+
topic: ReturnType<(typeof substitutions)["dxos.keys.PublicKey"]["decode"]>;
|
|
90
|
+
}
|
|
84
91
|
/**
|
|
85
92
|
* Defined in:
|
|
86
93
|
* {@link file://./../../../dxos/edge/signal.proto}
|