@may-db/core 0.1.0 → 0.1.2

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 (100) hide show
  1. package/README.md +210 -0
  2. package/dist/IndexRuntime.d.ts +60 -0
  3. package/dist/IndexRuntime.d.ts.map +1 -0
  4. package/dist/IndexRuntime.js +340 -0
  5. package/dist/IndexRuntime.js.map +1 -0
  6. package/dist/MayDb.d.ts +45 -9
  7. package/dist/MayDb.d.ts.map +1 -1
  8. package/dist/MayDb.js +251 -85
  9. package/dist/MayDb.js.map +1 -1
  10. package/dist/Room.d.ts +40 -57
  11. package/dist/Room.d.ts.map +1 -1
  12. package/dist/Room.js +212 -232
  13. package/dist/Room.js.map +1 -1
  14. package/dist/RuntimeIndexHandle.d.ts +29 -0
  15. package/dist/RuntimeIndexHandle.d.ts.map +1 -0
  16. package/dist/RuntimeIndexHandle.js +48 -0
  17. package/dist/RuntimeIndexHandle.js.map +1 -0
  18. package/dist/authStorage.d.ts +7 -7
  19. package/dist/authStorage.d.ts.map +1 -1
  20. package/dist/authStorage.js +8 -8
  21. package/dist/authStorage.js.map +1 -1
  22. package/dist/errors.d.ts +12 -0
  23. package/dist/errors.d.ts.map +1 -0
  24. package/dist/errors.js +15 -0
  25. package/dist/errors.js.map +1 -0
  26. package/dist/index.d.ts +4 -4
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +3 -3
  29. package/dist/index.js.map +1 -1
  30. package/dist/indexing/collaborativeSync.d.ts +25 -0
  31. package/dist/indexing/collaborativeSync.d.ts.map +1 -0
  32. package/dist/indexing/collaborativeSync.js +56 -0
  33. package/dist/indexing/collaborativeSync.js.map +1 -0
  34. package/dist/indexing/descriptor.d.ts +6 -0
  35. package/dist/indexing/descriptor.d.ts.map +1 -0
  36. package/dist/indexing/descriptor.js +2 -0
  37. package/dist/indexing/descriptor.js.map +1 -0
  38. package/dist/indexing/errors.d.ts +9 -0
  39. package/dist/indexing/errors.d.ts.map +1 -0
  40. package/dist/indexing/errors.js +11 -0
  41. package/dist/indexing/errors.js.map +1 -0
  42. package/dist/indexing/handle.d.ts +29 -0
  43. package/dist/indexing/handle.d.ts.map +1 -0
  44. package/dist/indexing/handle.js +48 -0
  45. package/dist/indexing/handle.js.map +1 -0
  46. package/dist/indexing/indexRoomStore.d.ts +18 -0
  47. package/dist/indexing/indexRoomStore.d.ts.map +1 -0
  48. package/dist/indexing/indexRoomStore.js +71 -0
  49. package/dist/indexing/indexRoomStore.js.map +1 -0
  50. package/dist/indexing/roomRegistry.d.ts +26 -0
  51. package/dist/indexing/roomRegistry.d.ts.map +1 -0
  52. package/dist/indexing/roomRegistry.js +125 -0
  53. package/dist/indexing/roomRegistry.js.map +1 -0
  54. package/dist/indexing/rows.d.ts +8 -0
  55. package/dist/indexing/rows.d.ts.map +1 -0
  56. package/dist/indexing/rows.js +86 -0
  57. package/dist/indexing/rows.js.map +1 -0
  58. package/dist/indexing/runtime.d.ts +61 -0
  59. package/dist/indexing/runtime.d.ts.map +1 -0
  60. package/dist/indexing/runtime.js +378 -0
  61. package/dist/indexing/runtime.js.map +1 -0
  62. package/dist/indexing.d.ts +93 -0
  63. package/dist/indexing.d.ts.map +1 -0
  64. package/dist/indexing.js +394 -0
  65. package/dist/indexing.js.map +1 -0
  66. package/dist/indexingErrors.d.ts +9 -0
  67. package/dist/indexingErrors.d.ts.map +1 -0
  68. package/dist/indexingErrors.js +11 -0
  69. package/dist/indexingErrors.js.map +1 -0
  70. package/dist/indexingRoomStore.d.ts +26 -0
  71. package/dist/indexingRoomStore.d.ts.map +1 -0
  72. package/dist/indexingRoomStore.js +125 -0
  73. package/dist/indexingRoomStore.js.map +1 -0
  74. package/dist/indexingRows.d.ts +8 -0
  75. package/dist/indexingRows.d.ts.map +1 -0
  76. package/dist/indexingRows.js +114 -0
  77. package/dist/indexingRows.js.map +1 -0
  78. package/dist/indexingTypes.d.ts +9 -0
  79. package/dist/indexingTypes.d.ts.map +1 -0
  80. package/dist/indexingTypes.js +2 -0
  81. package/dist/indexingTypes.js.map +1 -0
  82. package/dist/loginFlow.d.ts +10 -3
  83. package/dist/loginFlow.d.ts.map +1 -1
  84. package/dist/loginFlow.js +19 -14
  85. package/dist/loginFlow.js.map +1 -1
  86. package/dist/matrix-crdt-shim.d.ts +43 -0
  87. package/dist/matrix-crdt-shim.d.ts.map +1 -0
  88. package/dist/matrix-crdt-shim.js +2 -0
  89. package/dist/matrix-crdt-shim.js.map +1 -0
  90. package/dist/roomMetadata.d.ts +3 -0
  91. package/dist/roomMetadata.d.ts.map +1 -0
  92. package/dist/roomMetadata.js +3 -0
  93. package/dist/roomMetadata.js.map +1 -0
  94. package/dist/singletonRoom.d.ts.map +1 -1
  95. package/dist/singletonRoom.js +5 -36
  96. package/dist/singletonRoom.js.map +1 -1
  97. package/dist/types.d.ts +63 -13
  98. package/dist/types.d.ts.map +1 -1
  99. package/package.json +6 -5
  100. package/patches/matrix-crdt+0.2.1-alpha.1.patch +108 -0
package/dist/Room.js CHANGED
@@ -1,37 +1,40 @@
1
+ // eslint-disable-next-line @typescript-eslint/triple-slash-reference
2
+ /// <reference path="./matrix-crdt.d.ts" />
1
3
  import { MatrixProvider } from "matrix-crdt";
2
4
  import * as sdk from "matrix-js-sdk";
3
5
  import { Doc } from "yjs";
4
6
  import { extractLocalpart } from "./matrixId";
5
7
  export class Room {
6
- /*
7
- * Reactive-safe surface (render-safe reads/subscriptions):
8
- * these values/listeners are safe to use in React render/computed paths.
9
- */
10
- roomId;
8
+ id;
11
9
  doc;
12
10
  services;
13
11
  provider = null;
14
12
  connectPromise = null;
15
- _status = "disconnected";
16
- _canWrite = false;
17
- _metadata = null;
13
+ _state = {
14
+ status: "disconnected",
15
+ canEdit: false,
16
+ name: null,
17
+ };
18
18
  listeners = new Set();
19
19
  constructor(services, roomId) {
20
20
  this.services = services;
21
- this.roomId = roomId;
21
+ this.id = roomId;
22
22
  this.doc = new Doc();
23
23
  }
24
+ get state() {
25
+ return this._state;
26
+ }
24
27
  get status() {
25
- return this._status;
28
+ return this._state.status;
26
29
  }
27
- get canWrite() {
28
- return this._canWrite;
30
+ get canEdit() {
31
+ return this._state.canEdit;
29
32
  }
30
33
  get isConnected() {
31
- return this._status === "connected";
34
+ return this._state.status === "connected";
32
35
  }
33
- get metadata() {
34
- return this._metadata;
36
+ get name() {
37
+ return this._state.name;
35
38
  }
36
39
  get userId() {
37
40
  return this.matrixClient.getUserId();
@@ -46,11 +49,184 @@ export class Room {
46
49
  this.listeners.add(listener);
47
50
  return () => this.listeners.delete(listener);
48
51
  }
49
- /*
50
- * Imperative reads (async, not reactively wired):
51
- * these return snapshots and won't trigger rerenders unless the caller wires state updates.
52
- */
53
- async getRoomName(roomId = this.roomId) {
52
+ members = {
53
+ list: async () => this.getMembers(),
54
+ invite: async (userId, access) => {
55
+ await this.matrixClient.invite(this.id, userId);
56
+ const powerLevel = this.accessToPowerLevel(access);
57
+ await this.setUserPowerLevel(userId, powerLevel);
58
+ },
59
+ setAccess: async (userId, access) => {
60
+ const powerLevel = this.accessToPowerLevel(access);
61
+ await this.setUserPowerLevel(userId, powerLevel);
62
+ },
63
+ remove: async (userId) => {
64
+ await this.matrixClient.kick(this.id, userId);
65
+ },
66
+ };
67
+ delegates = {
68
+ list: async () => {
69
+ const ids = await this.getDelegateRoomIds();
70
+ return Promise.all(ids.map(async (roomId) => ({
71
+ roomId,
72
+ name: await this.getRoomName(roomId),
73
+ })));
74
+ },
75
+ add: async (delegateRoomId) => {
76
+ const existing = await this.getDelegateRoomIds();
77
+ if (existing.includes(delegateRoomId))
78
+ return;
79
+ const allow = [...existing, delegateRoomId].map((room_id) => ({
80
+ type: sdk.RestrictedAllowType.RoomMembership,
81
+ room_id,
82
+ }));
83
+ await this.matrixClient.sendStateEvent(this.id, "m.room.join_rules", {
84
+ join_rule: sdk.JoinRule.Restricted,
85
+ allow,
86
+ }, "");
87
+ },
88
+ remove: async (delegateRoomId) => {
89
+ const remaining = (await this.getDelegateRoomIds()).filter((id) => id !== delegateRoomId);
90
+ await this.matrixClient.sendStateEvent(this.id, "m.room.join_rules", remaining.length > 0
91
+ ? {
92
+ join_rule: sdk.JoinRule.Restricted,
93
+ allow: remaining.map((room_id) => ({
94
+ type: sdk.RestrictedAllowType.RoomMembership,
95
+ room_id,
96
+ })),
97
+ }
98
+ : {
99
+ join_rule: sdk.JoinRule.Invite,
100
+ }, "");
101
+ },
102
+ };
103
+ toDevice = {
104
+ send: async (eventType, content) => {
105
+ const localUserId = this.matrixClient.getUserId();
106
+ if (!localUserId)
107
+ return;
108
+ const memberIds = await this.getRoomMemberIds();
109
+ const otherMembers = memberIds.filter((id) => id !== localUserId);
110
+ if (otherMembers.length === 0)
111
+ return;
112
+ const messages = new Map();
113
+ for (const userId of otherMembers) {
114
+ const deviceMap = new Map();
115
+ deviceMap.set("*", content);
116
+ messages.set(userId, deviceMap);
117
+ }
118
+ const txnId = `todevice-${Date.now()}-${Math.random().toString(36).slice(2)}`;
119
+ await this.matrixClient.sendToDevice(eventType, messages, txnId);
120
+ },
121
+ poll: async (sinceToken) => this.pollToDeviceEvents(sinceToken),
122
+ };
123
+ async connect() {
124
+ if (this._state.status === "connected")
125
+ return;
126
+ if (this.connectPromise)
127
+ return this.connectPromise;
128
+ this.connectPromise = this.doConnect().finally(() => {
129
+ this.connectPromise = null;
130
+ });
131
+ return this.connectPromise;
132
+ }
133
+ disconnect() {
134
+ if (this.provider) {
135
+ try {
136
+ this.provider.dispose();
137
+ }
138
+ catch {
139
+ // matrix-crdt dispose() can throw if pendingPollRequest lacks abort()
140
+ }
141
+ this.provider = null;
142
+ }
143
+ this.connectPromise = null;
144
+ this.setStatus("disconnected");
145
+ }
146
+ dispose() {
147
+ this.disconnect();
148
+ this.listeners.clear();
149
+ this.services.removeRoom(this.id);
150
+ }
151
+ async refresh() {
152
+ const [name, canEdit] = await Promise.all([this.getRoomName(), this.canUserEdit()]);
153
+ if (this._state.name !== name || this._state.canEdit !== canEdit) {
154
+ this._state = {
155
+ ...this._state,
156
+ name,
157
+ canEdit,
158
+ };
159
+ this.emitState();
160
+ }
161
+ return this.state;
162
+ }
163
+ async rename(name) {
164
+ await this.matrixClient.setRoomName(this.id, name);
165
+ await this.refresh();
166
+ }
167
+ async ensureJoined() {
168
+ if (await this.isMember())
169
+ return;
170
+ await this.matrixClient.joinRoom(this.id);
171
+ }
172
+ get matrixClient() {
173
+ return this.services.matrixClient;
174
+ }
175
+ emitState() {
176
+ const snapshot = this.state;
177
+ for (const listener of this.listeners) {
178
+ listener(snapshot);
179
+ }
180
+ }
181
+ setStatus(status) {
182
+ if (this._state.status !== status) {
183
+ this._state = {
184
+ ...this._state,
185
+ status,
186
+ };
187
+ this.emitState();
188
+ }
189
+ }
190
+ async doConnect() {
191
+ this.setStatus("connecting");
192
+ try {
193
+ this.provider = new MatrixProvider(this.doc, this.matrixClient, { type: "id", id: this.id }, undefined, {
194
+ translator: {
195
+ updatesAsRegularMessages: true,
196
+ },
197
+ writer: {
198
+ flushInterval: 500,
199
+ retryIfForbiddenInterval: 30000,
200
+ },
201
+ reader: {
202
+ snapshotInterval: 30,
203
+ },
204
+ });
205
+ const documentAvailable = new Promise((resolve) => {
206
+ this.provider.onDocumentAvailable(() => {
207
+ this.setStatus("connected");
208
+ resolve();
209
+ });
210
+ });
211
+ this.provider.onCanWriteChanged(() => {
212
+ const nextCanEdit = this.provider?.canWrite ?? false;
213
+ if (this._state.canEdit !== nextCanEdit) {
214
+ this._state = {
215
+ ...this._state,
216
+ canEdit: nextCanEdit,
217
+ };
218
+ this.emitState();
219
+ }
220
+ });
221
+ this.provider.initialize();
222
+ await Promise.all([documentAvailable, this.refresh()]);
223
+ }
224
+ catch (error) {
225
+ this.setStatus("error");
226
+ throw error;
227
+ }
228
+ }
229
+ async getRoomName(roomId = this.id) {
54
230
  try {
55
231
  const state = await this.matrixClient.roomState(roomId);
56
232
  const nameEvent = state.find((e) => e.type === "m.room.name");
@@ -61,14 +237,13 @@ export class Room {
61
237
  }
62
238
  }
63
239
  async getMembers() {
64
- const state = await this.matrixClient.roomState(this.roomId);
240
+ const state = await this.matrixClient.roomState(this.id);
65
241
  const powerLevelsEvent = state.find((e) => e.type === "m.room.power_levels");
66
242
  const powerLevels = powerLevelsEvent?.content || {};
67
243
  const userPowerLevels = powerLevels.users || {};
68
- const members = state
244
+ return state
69
245
  .filter((e) => e.type === "m.room.member")
70
- .filter((e) => e.content?.membership === "join" ||
71
- e.content?.membership === "invite")
246
+ .filter((e) => e.content?.membership === "join" || e.content?.membership === "invite")
72
247
  .map((e) => {
73
248
  const userId = e.state_key;
74
249
  const displayName = e.content?.displayname || extractLocalpart(userId);
@@ -76,11 +251,10 @@ export class Room {
76
251
  const accessLevel = this.powerLevelToAccess(userPL);
77
252
  return { userId, displayName, accessLevel };
78
253
  });
79
- return members;
80
254
  }
81
255
  async isMember() {
82
256
  try {
83
- const state = await this.matrixClient.roomState(this.roomId);
257
+ const state = await this.matrixClient.roomState(this.id);
84
258
  const userId = this.matrixClient.getUserId();
85
259
  const memberEvent = state.find((e) => e.type === "m.room.member" && e.state_key === userId);
86
260
  return memberEvent?.content?.membership === "join";
@@ -90,18 +264,15 @@ export class Room {
90
264
  }
91
265
  }
92
266
  async getRoomMemberIds() {
93
- const state = await this.matrixClient.roomState(this.roomId);
267
+ const state = await this.matrixClient.roomState(this.id);
94
268
  return state
95
269
  .filter((e) => e.type === "m.room.member")
96
270
  .filter((e) => e.content?.membership === "join")
97
271
  .map((e) => e.state_key);
98
272
  }
99
- /**
100
- * Resolve delegate rooms currently allowed via restricted join rules.
101
- */
102
273
  async getDelegateRoomIds() {
103
274
  try {
104
- const state = await this.matrixClient.roomState(this.roomId);
275
+ const state = await this.matrixClient.roomState(this.id);
105
276
  const joinRulesEvent = state.find((e) => e.type === "m.room.join_rules");
106
277
  const content = joinRulesEvent?.content;
107
278
  if (content?.join_rule === "restricted" && content.allow) {
@@ -115,12 +286,7 @@ export class Room {
115
286
  return [];
116
287
  }
117
288
  }
118
- /**
119
- * Poll for to-device events using a minimal Matrix sync.
120
- * Returns new events and the next sync token for incremental polling.
121
- */
122
289
  async pollToDeviceEvents(sinceToken) {
123
- const client = this.matrixClient;
124
290
  const filter = {
125
291
  presence: { types: [] },
126
292
  room: { rooms: [] },
@@ -128,8 +294,8 @@ export class Room {
128
294
  };
129
295
  const filterParam = encodeURIComponent(JSON.stringify(filter));
130
296
  const sinceParam = sinceToken ? `&since=${sinceToken}` : "";
131
- const homeserver = client.getHomeserverUrl();
132
- const accessToken = client.getAccessToken();
297
+ const homeserver = this.matrixClient.getHomeserverUrl();
298
+ const accessToken = this.matrixClient.getAccessToken();
133
299
  const response = await fetch(`${homeserver}/_matrix/client/v3/sync?filter=${filterParam}&timeout=0${sinceParam}`, {
134
300
  headers: {
135
301
  Authorization: `Bearer ${accessToken}`,
@@ -144,184 +310,12 @@ export class Room {
144
310
  nextBatch: data.next_batch,
145
311
  };
146
312
  }
147
- /*
148
- * Imperative commands/writes (side effects):
149
- * these perform mutations/network actions and should be called in callbacks/effects.
150
- */
151
- /**
152
- * Connect the Y.js store to Matrix for this room.
153
- * Safe to call multiple times - will no-op if already connected.
154
- * Resolves when the Y.js document is available (synced from Matrix).
155
- */
156
- async connect() {
157
- if (this._status === "connected")
158
- return;
159
- if (this.connectPromise)
160
- return this.connectPromise;
161
- this.connectPromise = this.doConnect();
162
- return this.connectPromise;
163
- }
164
- disconnect() {
165
- if (this.provider) {
166
- try {
167
- this.provider.dispose();
168
- }
169
- catch {
170
- // matrix-crdt dispose() can throw if pendingPollRequest lacks abort()
171
- }
172
- this.provider = null;
173
- }
174
- this.setStatus("disconnected");
175
- }
176
- /**
177
- * Fully dispose this room instance (disconnects and removes from cache).
178
- */
179
- dispose() {
180
- this.disconnect();
181
- this.listeners.clear();
182
- this.services.removeRoom(this.roomId);
183
- }
184
- async refreshMetadata() {
185
- const [name, canEdit] = await Promise.all([
186
- this.getRoomName(),
187
- this.canEdit(),
188
- ]);
189
- this._metadata = { title: name };
190
- const canWriteChanged = this._canWrite !== canEdit;
191
- this._canWrite = canEdit;
192
- this.emit("onMetadataChange", this._metadata);
193
- if (canWriteChanged) {
194
- this.emit("onCanWriteChange", this._canWrite);
195
- }
196
- return this._metadata;
197
- }
198
- async setRoomName(title) {
199
- await this.matrixClient.setRoomName(this.roomId, title);
200
- await this.refreshMetadata();
201
- }
202
- async invite(userId, access) {
203
- await this.matrixClient.invite(this.roomId, userId);
204
- const powerLevel = this.accessToPowerLevel(access);
205
- await this.setUserPowerLevel(userId, powerLevel);
206
- }
207
- async setAccess(userId, access) {
208
- const powerLevel = this.accessToPowerLevel(access);
209
- await this.setUserPowerLevel(userId, powerLevel);
210
- }
211
- async kick(userId) {
212
- await this.matrixClient.kick(this.roomId, userId);
213
- }
214
- async join() {
215
- try {
216
- await this.matrixClient.joinRoom(this.roomId);
217
- return true;
218
- }
219
- catch (err) {
220
- console.error("Failed to join room:", err);
221
- return false;
222
- }
223
- }
224
- /**
225
- * Ensure the current user is a member of this room.
226
- * No-op if already joined. Attempts to join otherwise.
227
- * Throws if the join fails.
228
- */
229
- async ensureJoined() {
230
- if (await this.isMember())
231
- return;
232
- await this.matrixClient.joinRoom(this.roomId);
233
- }
234
- async addDelegateRoom(delegateRoomId) {
235
- const existing = await this.getDelegateRoomIds();
236
- if (existing.includes(delegateRoomId))
237
- return;
238
- const allow = [...existing, delegateRoomId].map((room_id) => ({
239
- type: sdk.RestrictedAllowType.RoomMembership,
240
- room_id,
241
- }));
242
- await this.matrixClient.sendStateEvent(this.roomId, "m.room.join_rules", {
243
- join_rule: sdk.JoinRule.Restricted,
244
- allow,
245
- }, "");
246
- }
247
- async removeDelegateRoom(delegateRoomId) {
248
- const remaining = (await this.getDelegateRoomIds()).filter((id) => id !== delegateRoomId);
249
- await this.matrixClient.sendStateEvent(this.roomId, "m.room.join_rules", remaining.length > 0
250
- ? {
251
- join_rule: sdk.JoinRule.Restricted,
252
- allow: remaining.map((room_id) => ({
253
- type: sdk.RestrictedAllowType.RoomMembership,
254
- room_id,
255
- })),
256
- }
257
- : {
258
- join_rule: sdk.JoinRule.Invite,
259
- }, "");
260
- }
261
- async sendToDevice(eventType, content) {
262
- const localUserId = this.matrixClient.getUserId();
263
- if (!localUserId)
264
- return;
265
- const memberIds = await this.getRoomMemberIds();
266
- const otherMembers = memberIds.filter((id) => id !== localUserId);
267
- if (otherMembers.length === 0)
268
- return;
269
- // Build the messages map: Map<userId, Map<deviceId, content>>
270
- // Using "*" as device ID sends to all devices of the user
271
- const messages = new Map();
272
- for (const userId of otherMembers) {
273
- const deviceMap = new Map();
274
- deviceMap.set("*", content);
275
- messages.set(userId, deviceMap);
276
- }
277
- const txnId = `todevice-${Date.now()}-${Math.random().toString(36).slice(2)}`;
278
- await this.matrixClient.sendToDevice(eventType, messages, txnId);
279
- }
280
- /**
281
- * Internal/private implementation details.
282
- */
283
- get matrixClient() {
284
- return this.services.matrixClient;
285
- }
286
- async doConnect() {
287
- this.setStatus("connecting");
288
- try {
289
- this.provider = new MatrixProvider(this.doc, this.matrixClient, { type: "id", id: this.roomId }, undefined, {
290
- translator: {
291
- updatesAsRegularMessages: true,
292
- },
293
- writer: {
294
- flushInterval: 500,
295
- retryIfForbiddenInterval: 30000,
296
- },
297
- reader: {
298
- snapshotInterval: 30,
299
- },
300
- });
301
- const documentAvailable = new Promise((resolve) => {
302
- this.provider.onDocumentAvailable(() => {
303
- this.setStatus("connected");
304
- resolve();
305
- });
306
- });
307
- this.provider.onCanWriteChanged(() => {
308
- this._canWrite = this.provider?.canWrite ?? false;
309
- this.emit("onCanWriteChange", this._canWrite);
310
- });
311
- this.provider.initialize();
312
- await Promise.all([documentAvailable, this.refreshMetadata()]);
313
- }
314
- catch (error) {
315
- this.setStatus("error");
316
- throw error;
317
- }
318
- }
319
- async canEdit() {
313
+ async canUserEdit() {
320
314
  try {
321
315
  const userId = this.matrixClient.getUserId();
322
316
  if (!userId)
323
317
  return false;
324
- const state = await this.matrixClient.roomState(this.roomId);
318
+ const state = await this.matrixClient.roomState(this.id);
325
319
  const powerLevelsEvent = state.find((e) => e.type === "m.room.power_levels");
326
320
  const powerLevels = powerLevelsEvent?.content || {};
327
321
  const userPowerLevels = powerLevels.users || {};
@@ -335,9 +329,9 @@ export class Room {
335
329
  }
336
330
  accessToPowerLevel(access) {
337
331
  switch (access) {
338
- case "view":
332
+ case "viewer":
339
333
  return -10;
340
- case "edit":
334
+ case "editor":
341
335
  return 0;
342
336
  case "owner":
343
337
  return 100;
@@ -347,11 +341,11 @@ export class Room {
347
341
  if (pl >= 100)
348
342
  return "owner";
349
343
  if (pl >= 0)
350
- return "edit";
351
- return "view";
344
+ return "editor";
345
+ return "viewer";
352
346
  }
353
347
  async setUserPowerLevel(userId, powerLevel) {
354
- const state = await this.matrixClient.roomState(this.roomId);
348
+ const state = await this.matrixClient.roomState(this.id);
355
349
  const powerLevelsEvent = state.find((e) => e.type === "m.room.power_levels");
356
350
  const currentPowerLevels = powerLevelsEvent?.content || {};
357
351
  const users = currentPowerLevels.users || {};
@@ -362,21 +356,7 @@ export class Room {
362
356
  [userId]: powerLevel,
363
357
  },
364
358
  };
365
- await this.matrixClient.sendStateEvent(this.roomId, "m.room.power_levels", newPowerLevels, "");
366
- }
367
- emit(event, ...args) {
368
- for (const listener of this.listeners) {
369
- const handler = listener[event];
370
- // TypeScript cannot narrow function signature from mapped type lookup
371
- if (handler)
372
- handler(...args);
373
- }
374
- }
375
- setStatus(status) {
376
- if (this._status !== status) {
377
- this._status = status;
378
- this.emit("onStatusChange", status);
379
- }
359
+ await this.matrixClient.sendStateEvent(this.id, "m.room.power_levels", newPowerLevels, "");
380
360
  }
381
361
  }
382
362
  //# sourceMappingURL=Room.js.map
package/dist/Room.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Room.js","sourceRoot":"","sources":["../src/Room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Room.js","sourceRoot":"","sources":["../src/Room.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import * as Y from "yjs";
2
+ import type { IndexRuntime } from "./IndexRuntime";
3
+ import type { Room } from "./Room";
4
+ import type { MayDbIndexDefinition, MayDbIndexHandle, MayDbIndexQueryPageOptions, MayDbIndexQueryPageResult } from "./types";
5
+ export declare class RuntimeIndexHandle implements MayDbIndexHandle {
6
+ readonly indexName: string;
7
+ readonly ownerRoomId: string | null;
8
+ readonly definition: MayDbIndexDefinition;
9
+ activeCount: number;
10
+ paused: boolean;
11
+ indexRoom: Room | null;
12
+ rowsMap: Y.Map<string> | null;
13
+ roomObserverCleanup: (() => void) | null;
14
+ readyPromise: Promise<void> | null;
15
+ private readonly runtime;
16
+ private readonly listeners;
17
+ constructor(options: {
18
+ runtime: IndexRuntime;
19
+ indexName: string;
20
+ ownerRoomId: string | null;
21
+ definition: MayDbIndexDefinition;
22
+ });
23
+ activate(): () => void;
24
+ ensureReady(): Promise<void>;
25
+ queryPage(options: MayDbIndexQueryPageOptions): Promise<MayDbIndexQueryPageResult>;
26
+ subscribe(listener: () => void): () => void;
27
+ notifyChange(): void;
28
+ }
29
+ //# sourceMappingURL=RuntimeIndexHandle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimeIndexHandle.d.ts","sourceRoot":"","sources":["../src/RuntimeIndexHandle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EAChB,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAEjB,qBAAa,kBAAmB,YAAW,gBAAgB;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,WAAW,SAAK;IAChB,MAAM,UAAS;IAEf,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAC9B,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAQ;IACrC,mBAAmB,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAQ;IAChD,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAQ;IAE1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;gBAEvC,OAAO,EAAE;QACnB,OAAO,EAAE,YAAY,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,UAAU,EAAE,oBAAoB,CAAC;KAClC;IAOD,QAAQ,IAAI,MAAM,IAAI;IAahB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,SAAS,CACb,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,yBAAyB,CAAC;IAIrC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAK3C,YAAY,IAAI,IAAI;CAKrB"}