@dxos/protocols 0.5.3-main.bc67fdb → 0.5.3-main.bfb5bca

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 (43) hide show
  1. package/dist/cjs/src/errors/encoding.js.map +1 -1
  2. package/dist/cjs/src/errors/helpers.d.ts +3 -1
  3. package/dist/cjs/src/errors/helpers.d.ts.map +1 -1
  4. package/dist/cjs/src/errors/helpers.js.map +1 -1
  5. package/dist/cjs/src/indexing.d.ts +19 -3
  6. package/dist/cjs/src/indexing.d.ts.map +1 -1
  7. package/dist/cjs/src/indexing.js +42 -5
  8. package/dist/cjs/src/indexing.js.map +1 -1
  9. package/dist/cjs/src/indexing.test.d.ts +2 -0
  10. package/dist/cjs/src/indexing.test.d.ts.map +1 -0
  11. package/dist/cjs/src/indexing.test.js +31 -0
  12. package/dist/cjs/src/indexing.test.js.map +1 -0
  13. package/dist/cjs/src/proto/gen/dxos/agent/functions.d.ts +10 -2
  14. package/dist/cjs/src/proto/gen/dxos/agent/functions.d.ts.map +1 -1
  15. package/dist/cjs/src/proto/gen/index.d.ts +1 -0
  16. package/dist/cjs/src/proto/gen/index.d.ts.map +1 -1
  17. package/dist/cjs/src/proto/gen/index.js +1 -1
  18. package/dist/cjs/src/proto/gen/index.js.map +1 -1
  19. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  20. package/dist/esm/src/errors/encoding.js.map +1 -1
  21. package/dist/esm/src/errors/helpers.d.ts +3 -1
  22. package/dist/esm/src/errors/helpers.d.ts.map +1 -1
  23. package/dist/esm/src/errors/helpers.js.map +1 -1
  24. package/dist/esm/src/indexing.d.ts +19 -3
  25. package/dist/esm/src/indexing.d.ts.map +1 -1
  26. package/dist/esm/src/indexing.js +41 -4
  27. package/dist/esm/src/indexing.js.map +1 -1
  28. package/dist/esm/src/indexing.test.d.ts +2 -0
  29. package/dist/esm/src/indexing.test.d.ts.map +1 -0
  30. package/dist/esm/src/indexing.test.js +29 -0
  31. package/dist/esm/src/indexing.test.js.map +1 -0
  32. package/dist/esm/src/proto/gen/dxos/agent/functions.d.ts +10 -2
  33. package/dist/esm/src/proto/gen/dxos/agent/functions.d.ts.map +1 -1
  34. package/dist/esm/src/proto/gen/index.d.ts +1 -0
  35. package/dist/esm/src/proto/gen/index.d.ts.map +1 -1
  36. package/dist/esm/src/proto/gen/index.js +1 -1
  37. package/dist/esm/src/proto/gen/index.js.map +1 -1
  38. package/package.json +5 -5
  39. package/src/indexing.test.ts +36 -0
  40. package/src/indexing.ts +44 -5
  41. package/src/proto/dxos/agent/functions.proto +7 -2
  42. package/src/proto/gen/dxos/agent/functions.ts +10 -2
  43. package/src/proto/gen/index.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/proto/gen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA+DhE,OAAO,aAAa,MAAM,kBAAkB,CAAC;AA0iB7C,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,ug0GAAug0G,CAAC,CAAC,CAAC;AAChk0G,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAkB,UAAU,EAAE,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/proto/gen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AA+DhE,OAAO,aAAa,MAAM,kBAAkB,CAAC;AA2iB7C,MAAM,CAAC,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,4o0GAA4o0G,CAAC,CAAC,CAAC;AACrs0G,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAkB,UAAU,EAAE,aAAa,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/protocols",
3
- "version": "0.5.3-main.bc67fdb",
3
+ "version": "0.5.3-main.bfb5bca",
4
4
  "description": "Protobuf definitions for DXOS protocols.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -33,10 +33,10 @@
33
33
  "src"
34
34
  ],
35
35
  "dependencies": {
36
- "@dxos/codec-protobuf": "0.5.3-main.bc67fdb",
37
- "@dxos/keys": "0.5.3-main.bc67fdb",
38
- "@dxos/invariant": "0.5.3-main.bc67fdb",
39
- "@dxos/timeframe": "0.5.3-main.bc67fdb"
36
+ "@dxos/codec-protobuf": "0.5.3-main.bfb5bca",
37
+ "@dxos/invariant": "0.5.3-main.bfb5bca",
38
+ "@dxos/keys": "0.5.3-main.bfb5bca",
39
+ "@dxos/timeframe": "0.5.3-main.bfb5bca"
40
40
  },
41
41
  "devDependencies": {
42
42
  "glob": "~7.1.6"
@@ -0,0 +1,36 @@
1
+ //
2
+ // Copyright 2022 DXOS.org
3
+ //
4
+
5
+ import { expect } from 'chai';
6
+
7
+ import { describe, test } from '@dxos/test';
8
+
9
+ import { ObjectPointerVersion, objectPointerCodec } from './indexing';
10
+
11
+ describe('Indexing object pointer codec', () => {
12
+ test('getVersion', async () => {
13
+ expect(objectPointerCodec.getVersion('aaaa|bbbb')).to.eq(ObjectPointerVersion.V0);
14
+ expect(objectPointerCodec.getVersion('#01|ssss|aaaa|bbbb')).to.eq(ObjectPointerVersion.V1);
15
+ });
16
+
17
+ test('v0', async () => {
18
+ expect(objectPointerCodec.encode({ spaceKey: undefined, documentId: 'aaaa', objectId: 'bbbb' })).to.eq('aaaa|bbbb');
19
+ expect(objectPointerCodec.decode('aaaa|bbbb')).to.eql({
20
+ spaceKey: undefined,
21
+ documentId: 'aaaa',
22
+ objectId: 'bbbb',
23
+ });
24
+ });
25
+
26
+ test('v1', async () => {
27
+ expect(objectPointerCodec.encode({ spaceKey: 'ssss', documentId: 'aaaa', objectId: 'bbbb' })).to.eq(
28
+ '#01|ssss|aaaa|bbbb',
29
+ );
30
+ expect(objectPointerCodec.decode('#01|ssss|aaaa|bbbb')).to.eql({
31
+ spaceKey: 'ssss',
32
+ documentId: 'aaaa',
33
+ objectId: 'bbbb',
34
+ });
35
+ });
36
+ });
package/src/indexing.ts CHANGED
@@ -3,19 +3,58 @@
3
3
  //
4
4
 
5
5
  export type ObjectPointerDecoded = {
6
+ spaceKey: string | undefined;
6
7
  documentId: string;
7
8
  objectId: string;
8
9
  };
9
10
 
10
11
  /**
11
- * Encoded object pointer: `${documentId}|${objectId}`.
12
+ * Encoded object pointer: `#01|${spaceKey}|${documentId}|${objectId}`.
13
+ * Old format without spaceKey: `${documentId}|${objectId}`.
14
+ * The spaceKey is optional and was added in the later version.
15
+ * Space key is encoded in the front to allow prefix iteration.
12
16
  */
13
17
  export type ObjectPointerEncoded = string;
14
18
 
15
- export const idCodec = {
16
- encode: ({ documentId, objectId }: ObjectPointerDecoded): ObjectPointerEncoded => `${documentId}|${objectId}`,
19
+ const V1_PREFIX = '#01';
20
+
21
+ export enum ObjectPointerVersion {
22
+ /**
23
+ * `${documentId}|${objectId}`
24
+ */
25
+ V0 = 0,
26
+ /**
27
+ * `#01|${spaceKey}|${documentId}|${objectId}`
28
+ */
29
+ V1 = 1,
30
+ }
31
+
32
+ export const objectPointerCodec = {
33
+ encode: ({ spaceKey, documentId, objectId }: ObjectPointerDecoded): ObjectPointerEncoded => {
34
+ if (spaceKey === undefined) {
35
+ return `${documentId}|${objectId}`;
36
+ } else {
37
+ return `${V1_PREFIX}|${spaceKey}|${documentId}|${objectId}`;
38
+ }
39
+ },
17
40
  decode: (id: ObjectPointerEncoded): ObjectPointerDecoded => {
18
- const [documentId, objectId] = id.split('|');
19
- return { documentId, objectId };
41
+ if (id.startsWith(V1_PREFIX)) {
42
+ const [_, spaceKey, documentId, objectId] = id.split('|');
43
+ return { spaceKey, documentId, objectId };
44
+ } else {
45
+ const [documentId, objectId] = id.split('|');
46
+ return { spaceKey: undefined, documentId, objectId };
47
+ }
48
+ },
49
+ getVersion: (id: ObjectPointerEncoded): ObjectPointerVersion => {
50
+ if (id.startsWith(V1_PREFIX)) {
51
+ return ObjectPointerVersion.V1;
52
+ } else {
53
+ return ObjectPointerVersion.V0;
54
+ }
55
+ },
56
+ convertV1ToV0: (id: ObjectPointerEncoded): ObjectPointerEncoded => {
57
+ const { documentId, objectId } = objectPointerCodec.decode(id);
58
+ return objectPointerCodec.encode({ documentId, objectId, spaceKey: undefined });
20
59
  },
21
60
  };
@@ -16,12 +16,11 @@ message FunctionsConfig {
16
16
 
17
17
  message Function {
18
18
  string id = 1;
19
- string path = 2;
19
+ string route = 2;
20
20
  }
21
21
 
22
22
  message RegisterRequest {
23
23
  string endpoint = 1;
24
- repeated Function functions = 2;
25
24
  }
26
25
 
27
26
  message RegisterResponse {
@@ -29,11 +28,17 @@ message RegisterResponse {
29
28
  string endpoint = 2;
30
29
  }
31
30
 
31
+ message UpdateRegistrationRequest {
32
+ string registration_id = 1;
33
+ repeated Function functions = 2;
34
+ }
35
+
32
36
  message UnregisterRequest {
33
37
  string registration_id = 1;
34
38
  }
35
39
 
36
40
  service FunctionRegistryService {
37
41
  rpc Register(RegisterRequest) returns (RegisterResponse) {}
42
+ rpc UpdateRegistration(UpdateRegistrationRequest) returns (google.protobuf.Empty) {}
38
43
  rpc Unregister(UnregisterRequest) returns (google.protobuf.Empty) {}
39
44
  }
@@ -83,7 +83,7 @@ export interface FunctionsConfig {
83
83
  */
84
84
  export interface Function {
85
85
  id: string;
86
- path: string;
86
+ route: string;
87
87
  }
88
88
  /**
89
89
  * Defined in:
@@ -91,7 +91,6 @@ export interface Function {
91
91
  */
92
92
  export interface RegisterRequest {
93
93
  endpoint: string;
94
- functions?: Function[];
95
94
  }
96
95
  /**
97
96
  * Defined in:
@@ -101,6 +100,14 @@ export interface RegisterResponse {
101
100
  registrationId: string;
102
101
  endpoint: string;
103
102
  }
103
+ /**
104
+ * Defined in:
105
+ * {@link file://./../../../dxos/agent/functions.proto}
106
+ */
107
+ export interface UpdateRegistrationRequest {
108
+ registrationId: string;
109
+ functions?: Function[];
110
+ }
104
111
  /**
105
112
  * Defined in:
106
113
  * {@link file://./../../../dxos/agent/functions.proto}
@@ -114,5 +121,6 @@ export interface UnregisterRequest {
114
121
  */
115
122
  export interface FunctionRegistryService {
116
123
  register: (request: RegisterRequest, options?: RequestOptions) => Promise<RegisterResponse>;
124
+ updateRegistration: (request: UpdateRegistrationRequest, options?: RequestOptions) => Promise<void>;
117
125
  unregister: (request: UnregisterRequest, options?: RequestOptions) => Promise<void>;
118
126
  }