@liveblocks/client 0.15.0-alpha.3 → 0.15.1

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 (59) hide show
  1. package/README.md +5 -10
  2. package/lib/esm/index.js +2991 -5
  3. package/lib/esm/index.mjs +2991 -0
  4. package/lib/esm/internal.js +149 -0
  5. package/lib/esm/internal.mjs +149 -0
  6. package/lib/{esm/types.d.ts → index.d.ts} +253 -61
  7. package/lib/index.js +4237 -0
  8. package/lib/{esm/live.d.ts → internal.d.ts} +46 -34
  9. package/lib/internal.js +193 -0
  10. package/package.json +32 -10
  11. package/lib/cjs/AbstractCrdt.d.ts +0 -68
  12. package/lib/cjs/AbstractCrdt.js +0 -95
  13. package/lib/cjs/LiveList.d.ts +0 -144
  14. package/lib/cjs/LiveList.js +0 -530
  15. package/lib/cjs/LiveMap.d.ts +0 -91
  16. package/lib/cjs/LiveMap.js +0 -325
  17. package/lib/cjs/LiveObject.d.ts +0 -80
  18. package/lib/cjs/LiveObject.js +0 -485
  19. package/lib/cjs/LiveRegister.d.ts +0 -29
  20. package/lib/cjs/LiveRegister.js +0 -88
  21. package/lib/cjs/client.d.ts +0 -27
  22. package/lib/cjs/client.js +0 -123
  23. package/lib/cjs/immutable.d.ts +0 -9
  24. package/lib/cjs/immutable.js +0 -299
  25. package/lib/cjs/index.d.ts +0 -6
  26. package/lib/cjs/index.js +0 -18
  27. package/lib/cjs/live.d.ts +0 -181
  28. package/lib/cjs/live.js +0 -49
  29. package/lib/cjs/position.d.ts +0 -6
  30. package/lib/cjs/position.js +0 -113
  31. package/lib/cjs/room.d.ts +0 -159
  32. package/lib/cjs/room.js +0 -1129
  33. package/lib/cjs/types.d.ts +0 -502
  34. package/lib/cjs/types.js +0 -2
  35. package/lib/cjs/utils.d.ts +0 -15
  36. package/lib/cjs/utils.js +0 -225
  37. package/lib/esm/AbstractCrdt.d.ts +0 -68
  38. package/lib/esm/AbstractCrdt.js +0 -91
  39. package/lib/esm/LiveList.d.ts +0 -144
  40. package/lib/esm/LiveList.js +0 -526
  41. package/lib/esm/LiveMap.d.ts +0 -91
  42. package/lib/esm/LiveMap.js +0 -321
  43. package/lib/esm/LiveObject.d.ts +0 -80
  44. package/lib/esm/LiveObject.js +0 -481
  45. package/lib/esm/LiveRegister.d.ts +0 -29
  46. package/lib/esm/LiveRegister.js +0 -84
  47. package/lib/esm/client.d.ts +0 -27
  48. package/lib/esm/client.js +0 -119
  49. package/lib/esm/immutable.d.ts +0 -9
  50. package/lib/esm/immutable.js +0 -290
  51. package/lib/esm/index.d.ts +0 -6
  52. package/lib/esm/live.js +0 -46
  53. package/lib/esm/position.d.ts +0 -6
  54. package/lib/esm/position.js +0 -106
  55. package/lib/esm/room.d.ts +0 -159
  56. package/lib/esm/room.js +0 -1123
  57. package/lib/esm/types.js +0 -1
  58. package/lib/esm/utils.d.ts +0 -15
  59. package/lib/esm/utils.js +0 -213
@@ -1,6 +1,9 @@
1
- import { Presence } from "./types";
2
- export declare type ServerMessage = UpdatePresenceMessage | UserJoinMessage | UserLeftMessage | EventMessage | RoomStateMessage | InitialDocumentStateMessage | UpdateStorageMessage;
3
- export declare enum ServerMessageType {
1
+ declare type Presence = {
2
+ [key: string]: any;
3
+ };
4
+
5
+ declare type ServerMessage = UpdatePresenceMessage | UserJoinMessage | UserLeftMessage | EventMessage | RoomStateMessage | InitialDocumentStateMessage | UpdateStorageMessage;
6
+ declare enum ServerMessageType {
4
7
  UpdatePresence = 100,
5
8
  UserJoined = 101,
6
9
  UserLeft = 102,
@@ -9,7 +12,7 @@ export declare enum ServerMessageType {
9
12
  InitialStorageState = 200,
10
13
  UpdateStorage = 201
11
14
  }
12
- export declare type RoomStateMessage = {
15
+ declare type RoomStateMessage = {
13
16
  type: ServerMessageType.RoomState;
14
17
  users: {
15
18
  [actor: number]: {
@@ -18,65 +21,65 @@ export declare type RoomStateMessage = {
18
21
  };
19
22
  };
20
23
  };
21
- export declare type UpdatePresenceMessage = {
24
+ declare type UpdatePresenceMessage = {
22
25
  type: ServerMessageType.UpdatePresence;
23
26
  actor: number;
24
27
  data: Presence;
25
28
  };
26
- export declare type UserJoinMessage = {
29
+ declare type UserJoinMessage = {
27
30
  type: ServerMessageType.UserJoined;
28
31
  actor: number;
29
32
  id?: string;
30
33
  info?: string;
31
34
  };
32
- export declare type UserLeftMessage = {
35
+ declare type UserLeftMessage = {
33
36
  type: ServerMessageType.UserLeft;
34
37
  actor: number;
35
38
  };
36
- export declare type EventMessage = {
39
+ declare type EventMessage = {
37
40
  type: ServerMessageType.Event;
38
41
  actor: number;
39
42
  event: any;
40
43
  };
41
- export declare type SerializedCrdtWithId = [id: string, crdt: SerializedCrdt];
42
- export declare type InitialDocumentStateMessage = {
44
+ declare type SerializedCrdtWithId = [id: string, crdt: SerializedCrdt];
45
+ declare type InitialDocumentStateMessage = {
43
46
  type: ServerMessageType.InitialStorageState;
44
47
  items: SerializedCrdtWithId[];
45
48
  };
46
- export declare type UpdateStorageMessage = {
49
+ declare type UpdateStorageMessage = {
47
50
  type: ServerMessageType.UpdateStorage;
48
51
  ops: Op[];
49
52
  };
50
- export declare type ClientMessage = ClientEventMessage | UpdatePresenceClientMessage | UpdateStorageClientMessage | FetchStorageClientMessage;
51
- export declare enum ClientMessageType {
53
+ declare type ClientMessage = ClientEventMessage | UpdatePresenceClientMessage | UpdateStorageClientMessage | FetchStorageClientMessage;
54
+ declare enum ClientMessageType {
52
55
  UpdatePresence = 100,
53
56
  ClientEvent = 103,
54
57
  FetchStorage = 200,
55
58
  UpdateStorage = 201
56
59
  }
57
- export declare type ClientEventMessage = {
60
+ declare type ClientEventMessage = {
58
61
  type: ClientMessageType.ClientEvent;
59
62
  event: any;
60
63
  };
61
- export declare type UpdatePresenceClientMessage = {
64
+ declare type UpdatePresenceClientMessage = {
62
65
  type: ClientMessageType.UpdatePresence;
63
66
  data: Presence;
64
67
  targetActor?: number;
65
68
  };
66
- export declare type UpdateStorageClientMessage = {
69
+ declare type UpdateStorageClientMessage = {
67
70
  type: ClientMessageType.UpdateStorage;
68
71
  ops: Op[];
69
72
  };
70
- export declare type FetchStorageClientMessage = {
73
+ declare type FetchStorageClientMessage = {
71
74
  type: ClientMessageType.FetchStorage;
72
75
  };
73
- export declare enum CrdtType {
76
+ declare enum CrdtType {
74
77
  Object = 0,
75
78
  List = 1,
76
79
  Map = 2,
77
80
  Register = 3
78
81
  }
79
- export declare type SerializedObject = {
82
+ declare type SerializedObject = {
80
83
  type: CrdtType.Object;
81
84
  parentId?: string;
82
85
  parentKey?: string;
@@ -84,24 +87,24 @@ export declare type SerializedObject = {
84
87
  [key: string]: any;
85
88
  };
86
89
  };
87
- export declare type SerializedList = {
90
+ declare type SerializedList = {
88
91
  type: CrdtType.List;
89
92
  parentId: string;
90
93
  parentKey: string;
91
94
  };
92
- export declare type SerializedMap = {
95
+ declare type SerializedMap = {
93
96
  type: CrdtType.Map;
94
97
  parentId: string;
95
98
  parentKey: string;
96
99
  };
97
- export declare type SerializedRegister = {
100
+ declare type SerializedRegister = {
98
101
  type: CrdtType.Register;
99
102
  parentId: string;
100
103
  parentKey: string;
101
104
  data: any;
102
105
  };
103
- export declare type SerializedCrdt = SerializedObject | SerializedList | SerializedMap | SerializedRegister;
104
- export declare enum OpType {
106
+ declare type SerializedCrdt = SerializedObject | SerializedList | SerializedMap | SerializedRegister;
107
+ declare enum OpType {
105
108
  Init = 0,
106
109
  SetParentKey = 1,
107
110
  CreateList = 2,
@@ -112,8 +115,8 @@ export declare enum OpType {
112
115
  CreateMap = 7,
113
116
  CreateRegister = 8
114
117
  }
115
- export declare type Op = CreateObjectOp | UpdateObjectOp | DeleteCrdtOp | CreateListOp | SetParentKeyOp | DeleteObjectKeyOp | CreateMapOp | CreateRegisterOp;
116
- export declare type UpdateObjectOp = {
118
+ declare type Op = CreateObjectOp | UpdateObjectOp | DeleteCrdtOp | CreateListOp | SetParentKeyOp | DeleteObjectKeyOp | CreateMapOp | CreateRegisterOp;
119
+ declare type UpdateObjectOp = {
117
120
  opId?: string;
118
121
  id: string;
119
122
  type: OpType.UpdateObject;
@@ -121,7 +124,7 @@ export declare type UpdateObjectOp = {
121
124
  [key: string]: any;
122
125
  };
123
126
  };
124
- export declare type CreateObjectOp = {
127
+ declare type CreateObjectOp = {
125
128
  opId?: string;
126
129
  id: string;
127
130
  type: OpType.CreateObject;
@@ -131,21 +134,21 @@ export declare type CreateObjectOp = {
131
134
  [key: string]: any;
132
135
  };
133
136
  };
134
- export declare type CreateListOp = {
137
+ declare type CreateListOp = {
135
138
  opId?: string;
136
139
  id: string;
137
140
  type: OpType.CreateList;
138
141
  parentId: string;
139
142
  parentKey: string;
140
143
  };
141
- export declare type CreateMapOp = {
144
+ declare type CreateMapOp = {
142
145
  opId?: string;
143
146
  id: string;
144
147
  type: OpType.CreateMap;
145
148
  parentId: string;
146
149
  parentKey: string;
147
150
  };
148
- export declare type CreateRegisterOp = {
151
+ declare type CreateRegisterOp = {
149
152
  opId?: string;
150
153
  id: string;
151
154
  type: OpType.CreateRegister;
@@ -153,24 +156,24 @@ export declare type CreateRegisterOp = {
153
156
  parentKey: string;
154
157
  data: any;
155
158
  };
156
- export declare type DeleteCrdtOp = {
159
+ declare type DeleteCrdtOp = {
157
160
  opId?: string;
158
161
  id: string;
159
162
  type: OpType.DeleteCrdt;
160
163
  };
161
- export declare type SetParentKeyOp = {
164
+ declare type SetParentKeyOp = {
162
165
  opId?: string;
163
166
  id: string;
164
167
  type: OpType.SetParentKey;
165
168
  parentKey: string;
166
169
  };
167
- export declare type DeleteObjectKeyOp = {
170
+ declare type DeleteObjectKeyOp = {
168
171
  opId?: string;
169
172
  id: string;
170
173
  type: OpType.DeleteObjectKey;
171
174
  key: string;
172
175
  };
173
- export declare enum WebsocketCloseCodes {
176
+ declare enum WebsocketCloseCodes {
174
177
  CLOSE_ABNORMAL = 1006,
175
178
  INVALID_MESSAGE_FORMAT = 4000,
176
179
  NOT_ALLOWED = 4001,
@@ -179,3 +182,12 @@ export declare enum WebsocketCloseCodes {
179
182
  MAX_NUMBER_OF_MESSAGES_PER_DAY_PER_APP = 4004,
180
183
  MAX_NUMBER_OF_CONCURRENT_CONNECTIONS_PER_ROOM = 4005
181
184
  }
185
+
186
+ declare const min = 32;
187
+ declare const max = 126;
188
+ declare function makePosition(before?: string, after?: string): string;
189
+ declare function posCodes(str: string): number[];
190
+ declare function pos(codes: number[]): string;
191
+ declare function compare(posA: string, posB: string): number;
192
+
193
+ export { ClientEventMessage, ClientMessage, ClientMessageType, CrdtType, CreateListOp, CreateMapOp, CreateObjectOp, CreateRegisterOp, DeleteCrdtOp, DeleteObjectKeyOp, EventMessage, FetchStorageClientMessage, InitialDocumentStateMessage, Op, OpType, RoomStateMessage, SerializedCrdt, SerializedCrdtWithId, SerializedList, SerializedMap, SerializedObject, SerializedRegister, ServerMessage, ServerMessageType, SetParentKeyOp, UpdateObjectOp, UpdatePresenceClientMessage, UpdatePresenceMessage, UpdateStorageClientMessage, UpdateStorageMessage, UserJoinMessage, UserLeftMessage, WebsocketCloseCodes, compare, makePosition, max, min, pos, posCodes };
@@ -0,0 +1,193 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ exports.ServerMessageType = void 0;
6
+
7
+ (function (ServerMessageType) {
8
+ ServerMessageType[ServerMessageType["UpdatePresence"] = 100] = "UpdatePresence";
9
+ ServerMessageType[ServerMessageType["UserJoined"] = 101] = "UserJoined";
10
+ ServerMessageType[ServerMessageType["UserLeft"] = 102] = "UserLeft";
11
+ ServerMessageType[ServerMessageType["Event"] = 103] = "Event";
12
+ ServerMessageType[ServerMessageType["RoomState"] = 104] = "RoomState";
13
+ ServerMessageType[ServerMessageType["InitialStorageState"] = 200] = "InitialStorageState";
14
+ ServerMessageType[ServerMessageType["UpdateStorage"] = 201] = "UpdateStorage";
15
+ })(exports.ServerMessageType || (exports.ServerMessageType = {}));
16
+
17
+ exports.ClientMessageType = void 0;
18
+
19
+ (function (ClientMessageType) {
20
+ ClientMessageType[ClientMessageType["UpdatePresence"] = 100] = "UpdatePresence";
21
+ ClientMessageType[ClientMessageType["ClientEvent"] = 103] = "ClientEvent";
22
+ ClientMessageType[ClientMessageType["FetchStorage"] = 200] = "FetchStorage";
23
+ ClientMessageType[ClientMessageType["UpdateStorage"] = 201] = "UpdateStorage";
24
+ })(exports.ClientMessageType || (exports.ClientMessageType = {}));
25
+
26
+ exports.CrdtType = void 0;
27
+
28
+ (function (CrdtType) {
29
+ CrdtType[CrdtType["Object"] = 0] = "Object";
30
+ CrdtType[CrdtType["List"] = 1] = "List";
31
+ CrdtType[CrdtType["Map"] = 2] = "Map";
32
+ CrdtType[CrdtType["Register"] = 3] = "Register";
33
+ })(exports.CrdtType || (exports.CrdtType = {}));
34
+
35
+ exports.OpType = void 0;
36
+
37
+ (function (OpType) {
38
+ OpType[OpType["Init"] = 0] = "Init";
39
+ OpType[OpType["SetParentKey"] = 1] = "SetParentKey";
40
+ OpType[OpType["CreateList"] = 2] = "CreateList";
41
+ OpType[OpType["UpdateObject"] = 3] = "UpdateObject";
42
+ OpType[OpType["CreateObject"] = 4] = "CreateObject";
43
+ OpType[OpType["DeleteCrdt"] = 5] = "DeleteCrdt";
44
+ OpType[OpType["DeleteObjectKey"] = 6] = "DeleteObjectKey";
45
+ OpType[OpType["CreateMap"] = 7] = "CreateMap";
46
+ OpType[OpType["CreateRegister"] = 8] = "CreateRegister";
47
+ })(exports.OpType || (exports.OpType = {}));
48
+
49
+ exports.WebsocketCloseCodes = void 0;
50
+
51
+ (function (WebsocketCloseCodes) {
52
+ WebsocketCloseCodes[WebsocketCloseCodes["CLOSE_ABNORMAL"] = 1006] = "CLOSE_ABNORMAL";
53
+ WebsocketCloseCodes[WebsocketCloseCodes["INVALID_MESSAGE_FORMAT"] = 4000] = "INVALID_MESSAGE_FORMAT";
54
+ WebsocketCloseCodes[WebsocketCloseCodes["NOT_ALLOWED"] = 4001] = "NOT_ALLOWED";
55
+ WebsocketCloseCodes[WebsocketCloseCodes["MAX_NUMBER_OF_MESSAGES_PER_SECONDS"] = 4002] = "MAX_NUMBER_OF_MESSAGES_PER_SECONDS";
56
+ WebsocketCloseCodes[WebsocketCloseCodes["MAX_NUMBER_OF_CONCURRENT_CONNECTIONS"] = 4003] = "MAX_NUMBER_OF_CONCURRENT_CONNECTIONS";
57
+ WebsocketCloseCodes[WebsocketCloseCodes["MAX_NUMBER_OF_MESSAGES_PER_DAY_PER_APP"] = 4004] = "MAX_NUMBER_OF_MESSAGES_PER_DAY_PER_APP";
58
+ WebsocketCloseCodes[WebsocketCloseCodes["MAX_NUMBER_OF_CONCURRENT_CONNECTIONS_PER_ROOM"] = 4005] = "MAX_NUMBER_OF_CONCURRENT_CONNECTIONS_PER_ROOM";
59
+ })(exports.WebsocketCloseCodes || (exports.WebsocketCloseCodes = {}));
60
+
61
+ var min = 32;
62
+ var max = 126;
63
+ function makePosition(before, after) {
64
+ if (before == null && after == null) {
65
+ return pos([min + 1]);
66
+ }
67
+
68
+ if (before != null && after == null) {
69
+ return getNextPosition(before);
70
+ }
71
+
72
+ if (before == null && after != null) {
73
+ return getPreviousPosition(after);
74
+ }
75
+
76
+ return pos(makePositionFromCodes(posCodes(before), posCodes(after)));
77
+ }
78
+
79
+ function getPreviousPosition(after) {
80
+ var result = [];
81
+ var afterCodes = posCodes(after);
82
+
83
+ for (var i = 0; i < afterCodes.length; i++) {
84
+ var code = afterCodes[i];
85
+
86
+ if (code <= min + 1) {
87
+ result.push(min);
88
+
89
+ if (afterCodes.length - 1 === i) {
90
+ result.push(max);
91
+ break;
92
+ }
93
+ } else {
94
+ result.push(code - 1);
95
+ break;
96
+ }
97
+ }
98
+
99
+ return pos(result);
100
+ }
101
+
102
+ function getNextPosition(before) {
103
+ var result = [];
104
+ var beforeCodes = posCodes(before);
105
+
106
+ for (var i = 0; i < beforeCodes.length; i++) {
107
+ var code = beforeCodes[i];
108
+
109
+ if (code === max) {
110
+ result.push(code);
111
+
112
+ if (beforeCodes.length - 1 === i) {
113
+ result.push(min + 1);
114
+ break;
115
+ }
116
+ } else {
117
+ result.push(code + 1);
118
+ break;
119
+ }
120
+ }
121
+
122
+ return pos(result);
123
+ }
124
+
125
+ function makePositionFromCodes(before, after) {
126
+ var index = 0;
127
+ var result = [];
128
+
129
+ while (true) {
130
+ var beforeDigit = before[index] || min;
131
+ var afterDigit = after[index] || max;
132
+
133
+ if (beforeDigit > afterDigit) {
134
+ throw new Error("Impossible to generate position between " + before + " and " + after);
135
+ }
136
+
137
+ if (beforeDigit === afterDigit) {
138
+ result.push(beforeDigit);
139
+ index++;
140
+ continue;
141
+ }
142
+
143
+ if (afterDigit - beforeDigit === 1) {
144
+ result.push(beforeDigit);
145
+ result.push.apply(result, makePositionFromCodes(before.slice(index + 1), []));
146
+ break;
147
+ }
148
+
149
+ var mid = afterDigit + beforeDigit >> 1;
150
+ result.push(mid);
151
+ break;
152
+ }
153
+
154
+ return result;
155
+ }
156
+
157
+ function posCodes(str) {
158
+ var codes = [];
159
+
160
+ for (var i = 0; i < str.length; i++) {
161
+ codes.push(str.charCodeAt(i));
162
+ }
163
+
164
+ return codes;
165
+ }
166
+ function pos(codes) {
167
+ return String.fromCharCode.apply(String, codes);
168
+ }
169
+ function compare(posA, posB) {
170
+ var aCodes = posCodes(posA);
171
+ var bCodes = posCodes(posB);
172
+ var maxLength = Math.max(aCodes.length, bCodes.length);
173
+
174
+ for (var i = 0; i < maxLength; i++) {
175
+ var a = aCodes[i] == null ? min : aCodes[i];
176
+ var b = bCodes[i] == null ? min : bCodes[i];
177
+
178
+ if (a === b) {
179
+ continue;
180
+ } else {
181
+ return a - b;
182
+ }
183
+ }
184
+
185
+ throw new Error("Impossible to compare similar position \"" + posA + "\" and \"" + posB + "\"");
186
+ }
187
+
188
+ exports.compare = compare;
189
+ exports.makePosition = makePosition;
190
+ exports.max = max;
191
+ exports.min = min;
192
+ exports.pos = pos;
193
+ exports.posCodes = posCodes;
package/package.json CHANGED
@@ -1,12 +1,27 @@
1
1
  {
2
2
  "name": "@liveblocks/client",
3
- "version": "0.15.0-alpha.3",
3
+ "version": "0.15.1",
4
4
  "description": "",
5
- "main": "./lib/cjs/index.js",
6
- "module": "./lib/esm/index.js",
5
+ "main": "./lib/index.js",
6
+ "types": "./lib/index.d.ts",
7
7
  "files": [
8
- "lib/"
8
+ "lib/**"
9
9
  ],
10
+ "exports": {
11
+ "./package.json": "./package.json",
12
+ ".": {
13
+ "types": "./lib/index.d.ts",
14
+ "module": "./lib/esm/index.js",
15
+ "import": "./lib/esm/index.mjs",
16
+ "default": "./lib/index.js"
17
+ },
18
+ "./internal": {
19
+ "types": "./lib/internal.d.ts",
20
+ "module": "./lib/esm/internal.js",
21
+ "import": "./lib/esm/internal.mjs",
22
+ "default": "./lib/internal.js"
23
+ }
24
+ },
10
25
  "keywords": [
11
26
  "liveblocks",
12
27
  "multiplayer",
@@ -17,30 +32,37 @@
17
32
  "url": "https://github.com/liveblocks/liveblocks/issues"
18
33
  },
19
34
  "scripts": {
20
- "build-and-pack": "npm run build && npm pack",
21
- "build": "npm run build:esm && npm run build:cjs",
22
- "build:esm": "tsc -p tsconfig-esm.json",
23
- "build:cjs": "tsc -p tsconfig-cjs.json",
35
+ "build": "rollup -c",
24
36
  "test": "jest --watch"
25
37
  },
26
38
  "license": "Apache-2.0",
27
39
  "devDependencies": {
28
40
  "@babel/core": "^7.12.16",
41
+ "@babel/plugin-proposal-class-properties": "^7.16.7",
42
+ "@babel/plugin-proposal-private-methods": "^7.16.11",
29
43
  "@babel/preset-env": "^7.12.16",
30
44
  "@babel/preset-typescript": "^7.12.16",
45
+ "@rollup/plugin-babel": "^5.3.1",
46
+ "@rollup/plugin-node-resolve": "^13.1.3",
47
+ "@rollup/plugin-typescript": "^8.3.1",
31
48
  "@types/jest": "^26.0.21",
32
49
  "@types/node-fetch": "^2.6.1",
33
50
  "@types/ws": "^8.2.2",
34
51
  "babel-jest": "^26.6.3",
35
52
  "jest": "^26.6.3",
36
53
  "jest-each": "^27.5.1",
54
+ "msw": "^0.39.1",
37
55
  "node-fetch": "2.6.7",
56
+ "rollup": "^2.68.0",
57
+ "rollup-plugin-dts": "^4.1.0",
58
+ "rollup-plugin-esbuild": "^4.8.2",
38
59
  "typescript": "^4.4.0",
60
+ "whatwg-fetch": "^3.6.2",
39
61
  "ws": "^8.5.0"
40
62
  },
41
63
  "repository": {
42
64
  "type": "git",
43
65
  "url": "https://github.com/liveblocks/liveblocks.git",
44
- "directory": "packages/liveblocks"
66
+ "directory": "packages/liveblocks-client"
45
67
  }
46
- }
68
+ }
@@ -1,68 +0,0 @@
1
- import { Op, SerializedCrdt } from "./live";
2
- import { StorageUpdate } from "./types";
3
- export declare type ApplyResult = {
4
- reverse: Op[];
5
- modified: StorageUpdate;
6
- } | {
7
- modified: false;
8
- };
9
- export interface Doc {
10
- generateId: () => string;
11
- generateOpId: () => string;
12
- getItem: (id: string) => AbstractCrdt | undefined;
13
- addItem: (id: string, item: AbstractCrdt) => void;
14
- deleteItem: (id: string) => void;
15
- dispatch: (ops: Op[], reverseOps: Op[], storageUpdates: Map<string, StorageUpdate>) => void;
16
- }
17
- export declare abstract class AbstractCrdt {
18
- #private;
19
- /**
20
- * INTERNAL
21
- */
22
- protected get _doc(): Doc | undefined;
23
- /**
24
- * INTERNAL
25
- */
26
- get _id(): string | undefined;
27
- /**
28
- * INTERNAL
29
- */
30
- get _parent(): AbstractCrdt | undefined;
31
- /**
32
- * INTERNAL
33
- */
34
- get _parentKey(): string | undefined;
35
- /**
36
- * INTERNAL
37
- */
38
- _apply(op: Op, isLocal: boolean): ApplyResult;
39
- /**
40
- * INTERNAL
41
- */
42
- _setParentLink(parent: AbstractCrdt, key: string): void;
43
- /**
44
- * INTERNAL
45
- */
46
- _attach(id: string, doc: Doc): void;
47
- /**
48
- * INTERNAL
49
- */
50
- abstract _attachChild(id: string, key: string, crdt: AbstractCrdt, opId: string, isLocal: boolean): ApplyResult;
51
- /**
52
- * INTERNAL
53
- */
54
- _detach(): void;
55
- /**
56
- * INTERNAL
57
- */
58
- abstract _detachChild(crdt: AbstractCrdt): ApplyResult;
59
- /**
60
- * INTERNAL
61
- */
62
- abstract _serialize(parentId: string, parentKey: string, doc?: Doc): Op[];
63
- /**
64
- * INTERNAL
65
- */
66
- abstract _toSerializedCrdt(): SerializedCrdt;
67
- abstract _getType(): string;
68
- }
@@ -1,95 +0,0 @@
1
- "use strict";
2
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
- 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");
5
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
- };
7
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
- if (kind === "m") throw new TypeError("Private method is not writable");
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
11
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
- };
13
- var _AbstractCrdt_parent, _AbstractCrdt_doc, _AbstractCrdt_id, _AbstractCrdt_parentKey;
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.AbstractCrdt = void 0;
16
- const live_1 = require("./live");
17
- class AbstractCrdt {
18
- constructor() {
19
- _AbstractCrdt_parent.set(this, void 0);
20
- _AbstractCrdt_doc.set(this, void 0);
21
- _AbstractCrdt_id.set(this, void 0);
22
- _AbstractCrdt_parentKey.set(this, void 0);
23
- }
24
- /**
25
- * INTERNAL
26
- */
27
- get _doc() {
28
- return __classPrivateFieldGet(this, _AbstractCrdt_doc, "f");
29
- }
30
- /**
31
- * INTERNAL
32
- */
33
- get _id() {
34
- return __classPrivateFieldGet(this, _AbstractCrdt_id, "f");
35
- }
36
- /**
37
- * INTERNAL
38
- */
39
- get _parent() {
40
- return __classPrivateFieldGet(this, _AbstractCrdt_parent, "f");
41
- }
42
- /**
43
- * INTERNAL
44
- */
45
- get _parentKey() {
46
- return __classPrivateFieldGet(this, _AbstractCrdt_parentKey, "f");
47
- }
48
- /**
49
- * INTERNAL
50
- */
51
- _apply(op, isLocal) {
52
- switch (op.type) {
53
- case live_1.OpType.DeleteCrdt: {
54
- if (this._parent != null && this._parentKey != null) {
55
- return this._parent._detachChild(this);
56
- }
57
- return { modified: false };
58
- }
59
- }
60
- return { modified: false };
61
- }
62
- /**
63
- * INTERNAL
64
- */
65
- _setParentLink(parent, key) {
66
- if (__classPrivateFieldGet(this, _AbstractCrdt_parent, "f") != null && __classPrivateFieldGet(this, _AbstractCrdt_parent, "f") !== parent) {
67
- throw new Error("Cannot attach parent if it already exist");
68
- }
69
- __classPrivateFieldSet(this, _AbstractCrdt_parentKey, key, "f");
70
- __classPrivateFieldSet(this, _AbstractCrdt_parent, parent, "f");
71
- }
72
- /**
73
- * INTERNAL
74
- */
75
- _attach(id, doc) {
76
- if (__classPrivateFieldGet(this, _AbstractCrdt_id, "f") || __classPrivateFieldGet(this, _AbstractCrdt_doc, "f")) {
77
- throw new Error("Cannot attach if CRDT is already attached");
78
- }
79
- doc.addItem(id, this);
80
- __classPrivateFieldSet(this, _AbstractCrdt_id, id, "f");
81
- __classPrivateFieldSet(this, _AbstractCrdt_doc, doc, "f");
82
- }
83
- /**
84
- * INTERNAL
85
- */
86
- _detach() {
87
- if (__classPrivateFieldGet(this, _AbstractCrdt_doc, "f") && __classPrivateFieldGet(this, _AbstractCrdt_id, "f")) {
88
- __classPrivateFieldGet(this, _AbstractCrdt_doc, "f").deleteItem(__classPrivateFieldGet(this, _AbstractCrdt_id, "f"));
89
- }
90
- __classPrivateFieldSet(this, _AbstractCrdt_parent, undefined, "f");
91
- __classPrivateFieldSet(this, _AbstractCrdt_doc, undefined, "f");
92
- }
93
- }
94
- exports.AbstractCrdt = AbstractCrdt;
95
- _AbstractCrdt_parent = new WeakMap(), _AbstractCrdt_doc = new WeakMap(), _AbstractCrdt_id = new WeakMap(), _AbstractCrdt_parentKey = new WeakMap();