@dxos/protocols 0.8.4-main.72ec0f3 → 0.8.4-main.7ace549

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.
Files changed (58) hide show
  1. package/dist/src/edge/EdgeFunctionEnv.d.ts +95 -0
  2. package/dist/src/edge/EdgeFunctionEnv.d.ts.map +1 -0
  3. package/dist/src/edge/EdgeFunctionEnv.js +4 -0
  4. package/dist/src/edge/EdgeFunctionEnv.js.map +1 -0
  5. package/dist/src/{edge.d.ts → edge/edge.d.ts} +22 -13
  6. package/dist/src/edge/edge.d.ts.map +1 -0
  7. package/dist/src/{edge.js → edge/edge.js} +4 -4
  8. package/dist/src/edge/edge.js.map +1 -0
  9. package/dist/src/{edge-error.d.ts → edge/errors.d.ts} +5 -6
  10. package/dist/src/edge/errors.d.ts.map +1 -0
  11. package/dist/src/{edge-error.js → edge/errors.js} +13 -14
  12. package/dist/src/edge/errors.js.map +1 -0
  13. package/dist/src/edge/index.d.ts +4 -0
  14. package/dist/src/edge/index.d.ts.map +1 -0
  15. package/dist/src/edge/index.js +7 -0
  16. package/dist/src/edge/index.js.map +1 -0
  17. package/dist/src/errors/base-errors.d.ts +92 -8
  18. package/dist/src/errors/base-errors.d.ts.map +1 -1
  19. package/dist/src/errors/base-errors.js +4 -20
  20. package/dist/src/errors/base-errors.js.map +1 -1
  21. package/dist/src/errors/encoding.d.ts +1 -1
  22. package/dist/src/errors/encoding.d.ts.map +1 -1
  23. package/dist/src/errors/errors.d.ts +662 -41
  24. package/dist/src/errors/errors.d.ts.map +1 -1
  25. package/dist/src/errors/errors.js +29 -83
  26. package/dist/src/errors/errors.js.map +1 -1
  27. package/dist/src/errors/errors.test.js +1 -1
  28. package/dist/src/errors/errors.test.js.map +1 -1
  29. package/dist/src/errors/helpers.d.ts +8 -4
  30. package/dist/src/errors/helpers.d.ts.map +1 -1
  31. package/dist/src/errors/helpers.js +3 -3
  32. package/dist/src/errors/helpers.js.map +1 -1
  33. package/dist/src/feed-replication.d.ts.map +1 -1
  34. package/dist/src/index.d.ts +2 -2
  35. package/dist/src/index.d.ts.map +1 -1
  36. package/dist/src/index.js +3 -2
  37. package/dist/src/index.js.map +1 -1
  38. package/dist/src/messenger.d.ts +16 -0
  39. package/dist/src/messenger.d.ts.map +1 -0
  40. package/dist/src/messenger.js +4 -0
  41. package/dist/src/messenger.js.map +1 -0
  42. package/dist/tsconfig.tsbuildinfo +1 -1
  43. package/package.json +9 -9
  44. package/src/edge/EdgeFunctionEnv.ts +165 -0
  45. package/src/{edge.ts → edge/edge.ts} +30 -19
  46. package/src/{edge-error.ts → edge/errors.ts} +14 -15
  47. package/src/edge/index.ts +7 -0
  48. package/src/errors/base-errors.ts +4 -22
  49. package/src/errors/errors.test.ts +1 -1
  50. package/src/errors/errors.ts +35 -101
  51. package/src/errors/helpers.ts +5 -6
  52. package/src/feed-replication.ts +1 -0
  53. package/src/index.ts +4 -2
  54. package/src/messenger.ts +22 -0
  55. package/dist/src/edge-error.d.ts.map +0 -1
  56. package/dist/src/edge-error.js.map +0 -1
  57. package/dist/src/edge.d.ts.map +0 -1
  58. package/dist/src/edge.js.map +0 -1
@@ -2,167 +2,105 @@
2
2
  // Copyright 2021 DXOS.org
3
3
  //
4
4
 
5
+ import { BaseError } from '@dxos/errors';
5
6
  import { PublicKey } from '@dxos/keys';
6
7
 
7
8
  import type { ObjectId } from '../types.js';
8
9
 
9
- import { ApiError, BaseError, DatabaseError, SystemError } from './base-errors.js';
10
10
  import { registerError, registerErrorMessageContext, registerErrorNoArgs } from './helpers.js';
11
11
 
12
12
  /**
13
13
  * Thrown when request was terminated because the RPC endpoint has been closed.
14
14
  */
15
- export class RpcClosedError extends SystemError {
16
- constructor() {
17
- super('RPC_CLOSED', 'Request was terminated because the RPC endpoint is closed.');
18
- }
19
- }
15
+ export class RpcClosedError extends BaseError.extend(
16
+ 'RPC_CLOSED',
17
+ 'Request was terminated because the RPC endpoint is closed.',
18
+ ) {}
20
19
 
21
20
  registerErrorNoArgs('RPC_CLOSED', RpcClosedError);
22
21
 
23
22
  /**
24
23
  * Thrown when `request` is called when RPC has not been opened.
25
24
  */
26
- export class RpcNotOpenError extends SystemError {
27
- constructor() {
28
- super('RPC_NOT_OPEN', 'RPC has not been opened.');
29
- }
30
- }
25
+ export class RpcNotOpenError extends BaseError.extend('RPC_NOT_OPEN', 'RPC has not been opened.') {}
31
26
 
32
27
  registerErrorNoArgs('RPC_NOT_OPEN', RpcNotOpenError);
33
28
 
34
- export class CancelledError extends SystemError {
35
- constructor(message?: string, context?: Record<string, any>) {
36
- super('CANCELLED', message, context);
37
- }
38
- }
29
+ export class CancelledError extends BaseError.extend('CANCELLED') {}
39
30
 
40
31
  registerErrorMessageContext('CANCELLED', CancelledError);
41
32
 
42
- export class InvalidConfigError extends ApiError {
43
- constructor(message?: string, context?: Record<string, any>) {
44
- super('INVALID_CONFIG', message, context);
45
- }
46
- }
33
+ export class InvalidConfigError extends BaseError.extend('INVALID_CONFIG') {}
47
34
 
48
35
  registerErrorMessageContext('INVALID_CONFIG', InvalidConfigError);
49
36
 
50
37
  /**
51
38
  * Explicit failure to connect with remote client services.
52
39
  */
53
- export class RemoteServiceConnectionError extends ApiError {
54
- constructor(message?: string, context?: Record<string, any>) {
55
- super('REMOTE_SERVICE_CONNECTION_ERROR', message, context);
56
- }
57
- }
40
+ export class RemoteServiceConnectionError extends BaseError.extend('REMOTE_SERVICE_CONNECTION_ERROR') {}
58
41
 
59
42
  registerErrorMessageContext('REMOTE_SERVICE_CONNECTION_ERROR', RemoteServiceConnectionError);
60
43
 
61
44
  /**
62
45
  * Failed to open a connection to remote client services.
63
46
  */
64
- export class RemoteServiceConnectionTimeout extends ApiError {
65
- constructor(message?: string, context?: Record<string, any>) {
66
- super('REMOTE_SERVICE_CONNECTION_TIMEOUT', message, context);
67
- }
68
- }
47
+ export class RemoteServiceConnectionTimeout extends BaseError.extend('REMOTE_SERVICE_CONNECTION_TIMEOUT') {}
69
48
 
70
49
  registerErrorMessageContext('REMOTE_SERVICE_CONNECTION_TIMEOUT', RemoteServiceConnectionTimeout);
71
50
 
72
- export class DataCorruptionError extends SystemError {
73
- constructor(message?: string, context?: Record<string, any>) {
74
- super('DATA_CORRUPTION', message, context);
75
- }
76
- }
51
+ export class DataCorruptionError extends BaseError.extend('DATA_CORRUPTION') {}
77
52
 
78
53
  registerErrorMessageContext('DATA_CORRUPTION', DataCorruptionError);
79
54
 
80
- export class InvalidInvitationExtensionRoleError extends SystemError {
81
- constructor(message?: string, context?: Record<string, any>) {
82
- super('INVALID_INVITATION_EXTENSION_ROLE', message, context);
83
- }
84
- }
55
+ export class InvalidInvitationExtensionRoleError extends BaseError.extend('INVALID_INVITATION_EXTENSION_ROLE') {}
85
56
 
86
57
  registerErrorMessageContext('INVALID_INVITATION_EXTENSION_ROLE', InvalidInvitationExtensionRoleError);
87
58
 
88
- export class IdentityNotInitializedError extends DatabaseError {
89
- constructor(message?: string, context?: Record<string, any>) {
90
- super('IDENTITY_NOT_INITIALIZED', message, context);
91
- }
92
- }
59
+ export class IdentityNotInitializedError extends BaseError.extend('IDENTITY_NOT_INITIALIZED') {}
93
60
 
94
61
  registerErrorMessageContext('IDENTITY_NOT_INITIALIZED', IdentityNotInitializedError);
95
62
 
96
- export class InvalidInvitationError extends DatabaseError {
97
- constructor(message?: string, context?: Record<string, any>) {
98
- super('INVALID_INVITATION', message, context);
99
- }
100
- }
63
+ export class InvalidInvitationError extends BaseError.extend('INVALID_INVITATION') {}
101
64
 
102
65
  registerErrorMessageContext('INVALID_INVITATION', InvalidInvitationError);
103
66
 
104
- export class AlreadyJoinedError extends DatabaseError {
105
- constructor(message?: string, context?: Record<string, any>) {
106
- super('ALREADY_JOINED', message, context);
107
- }
108
- }
67
+ export class AlreadyJoinedError extends BaseError.extend('ALREADY_JOINED') {}
109
68
 
110
69
  registerErrorMessageContext('ALREADY_JOINED', AlreadyJoinedError);
111
70
 
112
- export class ConnectionResetError extends BaseError {
113
- constructor(message?: string, context?: any) {
114
- super('CONNECTION_RESET', message, context);
115
- }
116
- }
71
+ export class ConnectionResetError extends BaseError.extend('CONNECTION_RESET') {}
117
72
 
118
73
  registerErrorMessageContext('CONNECTION_RESET', ConnectionResetError);
119
74
 
120
- export class TimeoutError extends BaseError {
121
- constructor(message?: string, context?: any) {
122
- super('TIMEOUT', message, context);
123
- }
124
- }
75
+ export class TimeoutError extends BaseError.extend('TIMEOUT') {}
125
76
 
126
77
  registerErrorMessageContext('TIMEOUT', TimeoutError);
127
78
 
128
79
  // General protocol error.
129
- export class ProtocolError extends BaseError {
130
- constructor(message?: string, context?: any) {
131
- super('PROTOCOL_ERROR', message, context);
132
- }
133
- }
80
+ export class ProtocolError extends BaseError.extend('PROTOCOL_ERROR') {}
134
81
 
135
- registerErrorMessageContext('PROTOCOL_ERROR', ProtocolError);
82
+ registerErrorMessageContext(ProtocolError.code, ProtocolError);
136
83
 
137
84
  // General connectivity errors.
138
- export class ConnectivityError extends BaseError {
139
- constructor(message?: string, context?: any) {
140
- super('CONNECTIVITY_ERROR', message, context);
141
- }
142
- }
85
+ export class ConnectivityError extends BaseError.extend('CONNECTIVITY_ERROR') {}
143
86
 
144
87
  registerErrorMessageContext('CONNECTIVITY_ERROR', ConnectivityError);
145
88
 
146
- export class RateLimitExceededError extends BaseError {
147
- constructor(message?: string, context?: any) {
148
- super('RATE_LIMIT_EXCEEDED', message, context);
149
- }
150
- }
89
+ export class RateLimitExceededError extends BaseError.extend('RATE_LIMIT_EXCEEDED') {}
151
90
 
152
91
  registerErrorMessageContext('RATE_LIMIT_EXCEEDED', RateLimitExceededError);
153
92
 
154
93
  // TODO(nf): Rename? the protocol isn't what's unknown...
155
- export class UnknownProtocolError extends BaseError {
156
- constructor(message?: string, innerError?: Error) {
157
- super('UNKNOWN_PROTOCOL_ERROR', message, innerError);
158
- }
159
- }
94
+ export class UnknownProtocolError extends BaseError.extend('UNKNOWN_PROTOCOL_ERROR') {}
160
95
 
161
- registerErrorMessageContext('UNKNOWN_PROTOCOL_ERROR', UnknownProtocolError);
96
+ registerError(UnknownProtocolError.code, (message, context) => new UnknownProtocolError({ message, context }));
162
97
 
163
- export class InvalidStorageVersionError extends DatabaseError {
98
+ export class InvalidStorageVersionError extends BaseError.extend(
99
+ 'INVALID_STORAGE_VERSION',
100
+ 'Invalid storage version.',
101
+ ) {
164
102
  constructor(expected: number, actual: number) {
165
- super('INVALID_STORAGE_VERSION', 'Invalid storage version.', { expected, actual });
103
+ super({ context: { expected, actual } });
166
104
  }
167
105
  }
168
106
 
@@ -170,9 +108,9 @@ registerError('INVALID_STORAGE_VERSION', (_, context) => {
170
108
  return new InvalidStorageVersionError(context.expected ?? NaN, context.actual ?? NaN);
171
109
  });
172
110
 
173
- export class SpaceNotFoundError extends DatabaseError {
111
+ export class SpaceNotFoundError extends BaseError.extend('SPACE_NOT_FOUND', 'Space not found.') {
174
112
  constructor(spaceKey: PublicKey) {
175
- super('SPACE_NOT_FOUND', 'Space not found.', { spaceKey });
113
+ super({ context: { spaceKey } });
176
114
  }
177
115
  }
178
116
 
@@ -180,9 +118,9 @@ registerError('SPACE_NOT_FOUND', (_, context) => {
180
118
  return new SpaceNotFoundError(PublicKey.safeFrom(context.spaceKey) ?? PublicKey.from('00'));
181
119
  });
182
120
 
183
- export class EntityNotFoundError extends DatabaseError {
121
+ export class EntityNotFoundError extends BaseError.extend('ITEM_NOT_FOUND', 'Item not found.') {
184
122
  constructor(entityId: ObjectId) {
185
- super('ITEM_NOT_FOUND', 'Item not found.', { entityId });
123
+ super({ context: { entityId } });
186
124
  }
187
125
  }
188
126
 
@@ -190,9 +128,9 @@ registerError('ITEM_NOT_FOUND', (_, context) => {
190
128
  return new EntityNotFoundError(context.entityId);
191
129
  });
192
130
 
193
- export class UnknownModelError extends DatabaseError {
131
+ export class UnknownModelError extends BaseError.extend('UNKNOWN_MODEL', 'Unknown model.') {
194
132
  constructor(model: string) {
195
- super('UNKNOWN_MODEL', 'Unknown model.', { model });
133
+ super({ context: { model } });
196
134
  }
197
135
  }
198
136
 
@@ -200,10 +138,6 @@ registerError('UNKNOWN_MODEL', (_, context) => {
200
138
  return new UnknownModelError(context.model);
201
139
  });
202
140
 
203
- export class AuthorizationError extends ApiError {
204
- constructor(message?: string, context?: any) {
205
- super('AUTHORIZATION_ERROR', message, context);
206
- }
207
- }
141
+ export class AuthorizationError extends BaseError.extend('AUTHORIZATION_ERROR') {}
208
142
 
209
143
  registerErrorMessageContext('AUTHORIZATION_ERROR', AuthorizationError);
@@ -2,12 +2,11 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
+ import { BaseError } from '@dxos/errors';
5
6
  import { invariant } from '@dxos/invariant';
6
7
 
7
8
  import { type Error as SerializedErrorProto } from '../proto/gen/dxos/error.js';
8
9
 
9
- import { SystemError } from './base-errors.js';
10
-
11
10
  export const reconstructError = (error: SerializedErrorProto) => {
12
11
  const { name, message, context } = error;
13
12
  return errorFromCode(name, message, context);
@@ -20,21 +19,21 @@ export const registerError = (code: string, make: (message?: string, context?: a
20
19
  errorRegistry.set(code, make);
21
20
  };
22
21
 
23
- export const registerErrorNoArgs = (code: string, Constructor: { new (): Error }) => {
22
+ export const registerErrorNoArgs = (code: string, Constructor: { new (options?: any): Error }) => {
24
23
  registerError(code, () => new Constructor());
25
24
  };
26
25
 
27
26
  export const registerErrorMessageContext = (
28
27
  code: string,
29
- Constructor: { new (message?: string, context?: any): Error },
28
+ Constructor: { new (options?: { message?: string; context?: any }): Error },
30
29
  ) => {
31
- registerError(code, (message?: string, context?: string) => new Constructor(message, context));
30
+ registerError(code, (message?: string, context?: any) => new Constructor({ message, context }));
32
31
  };
33
32
 
34
33
  export const errorFromCode = (code?: string, message?: string, context?: any) => {
35
34
  if (code && errorRegistry.has(code)) {
36
35
  return errorRegistry.get(code)!(message, context);
37
36
  } else {
38
- return new SystemError(code ?? 'Error', message, context);
37
+ return new BaseError(code ?? 'Error', { message, context });
39
38
  }
40
39
  };
@@ -12,6 +12,7 @@ export type FeedBlock = {
12
12
  }[];
13
13
  signature: Uint8Array;
14
14
  };
15
+
15
16
  export type GetMetadataProtocolMessage = {
16
17
  type: 'get-metadata';
17
18
  feedKey: string;
package/src/index.ts CHANGED
@@ -2,11 +2,13 @@
2
2
  // Copyright 2021 DXOS.org
3
3
  //
4
4
 
5
+ // TODO(burdon): Why export .js?
6
+
5
7
  export * from './automerge.js';
6
- export * from './edge-error.js';
7
- export * from './edge.js';
8
+ export * from './edge/index.js';
8
9
  export * from './errors/index.js';
9
10
  export * from './indexing.js';
11
+ export * from './messenger.js';
10
12
  export * from './profile-archive.js';
11
13
  export * from './query.js';
12
14
  export * from './queue.js';
@@ -0,0 +1,22 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type CleanupFn } from '@dxos/async';
6
+
7
+ import { type GossipMessage } from './proto/gen/dxos/mesh/teleport/gossip';
8
+
9
+ /**
10
+ * Message passing abstraction.
11
+ */
12
+ export interface Messenger {
13
+ /**
14
+ * Register channel listener.
15
+ */
16
+ listen: (channel: string, callback: (message: GossipMessage) => void) => CleanupFn;
17
+
18
+ /**
19
+ * Send message to channel.
20
+ */
21
+ postMessage: (channel: string, message: any) => Promise<void>;
22
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"edge-error.d.ts","sourceRoot":"","sources":["../../src/edge-error.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAkC,MAAM,WAAW,CAAC;AAGjG;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;WAC9B,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,GAAG,mBAAmB;WAY9E,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC;WASvE,0BAA0B,CAAC,KAAK,EAAE,KAAK,GAAG,mBAAmB;IAQ3E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEnB,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,SAAS,CAAC,EAAE,aAAa,CAAC;QAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,KAAK,CAAC;KACf;CAOF;AAED,qBAAa,sBAAuB,SAAQ,mBAAmB;aAE3C,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM,EACjC,SAAS,EAAE,aAAa;CAI3B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"edge-error.js","sourceRoot":"","sources":["../../src/edge-error.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../src/edge.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"edge.js","sourceRoot":"","sources":["../../src/edge.ts"],"names":[],"mappings":"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"}