@pluv/io 0.21.1 → 0.23.0
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/.turbo/turbo-build.log +9 -9
- package/CHANGELOG.md +80 -0
- package/dist/index.d.mts +93 -91
- package/dist/index.d.ts +93 -91
- package/dist/index.js +150 -151
- package/dist/index.mjs +150 -151
- package/package.json +5 -5
- package/src/AbstractPlatform.ts +6 -6
- package/src/AbstractWebSocket.ts +1 -0
- package/src/IORoom.ts +60 -49
- package/src/PluvIO.ts +16 -178
- package/src/PluvRouter.ts +1 -3
- package/src/PluvServer.ts +161 -22
- package/src/createIO.ts +3 -7
- package/src/types.ts +33 -6
- package/src/version.generated.ts +1 -1
package/dist/index.js
CHANGED
|
@@ -394,10 +394,10 @@ var PING_TIMEOUT_MS = 3e4;
|
|
|
394
394
|
// src/IORoom.ts
|
|
395
395
|
var IORoom = class {
|
|
396
396
|
constructor(id, config) {
|
|
397
|
-
this._sessions = /* @__PURE__ */ new Map();
|
|
398
|
-
this._uninitialize = null;
|
|
399
397
|
this._authorize = null;
|
|
400
|
-
|
|
398
|
+
this._uninitialize = null;
|
|
399
|
+
this._sessions = /* @__PURE__ */ new Map();
|
|
400
|
+
const { authorize: authorize2, context, crdt = import_crdt.noop, debug, onDestroy, onMessage, platform, router } = config;
|
|
401
401
|
this._context = context;
|
|
402
402
|
this._debug = debug;
|
|
403
403
|
this._docFactory = crdt.doc(() => ({}));
|
|
@@ -406,7 +406,8 @@ var IORoom = class {
|
|
|
406
406
|
this._platform = platform.initialize({ context });
|
|
407
407
|
this.id = id;
|
|
408
408
|
this._listeners = {
|
|
409
|
-
onDestroy: (event) => onDestroy == null ? void 0 : onDestroy(event)
|
|
409
|
+
onDestroy: (event) => onDestroy == null ? void 0 : onDestroy(event),
|
|
410
|
+
onMessage: (event) => onMessage == null ? void 0 : onMessage(event)
|
|
410
411
|
};
|
|
411
412
|
if (authorize2) this._authorize = authorize2;
|
|
412
413
|
const webSockets = this._platform.getWebSockets();
|
|
@@ -623,9 +624,25 @@ var IORoom = class {
|
|
|
623
624
|
this.id,
|
|
624
625
|
(_a) => __async(this, null, function* () {
|
|
625
626
|
var _b = _a, { options = {} } = _b, message = __objRest(_b, ["options"]);
|
|
626
|
-
const
|
|
627
|
-
|
|
628
|
-
|
|
627
|
+
const sender = {
|
|
628
|
+
sessionId: message.connectionId,
|
|
629
|
+
user: message.user
|
|
630
|
+
};
|
|
631
|
+
switch (options.type) {
|
|
632
|
+
case "self": {
|
|
633
|
+
yield this._sendSelfMessage(message, sender);
|
|
634
|
+
return;
|
|
635
|
+
}
|
|
636
|
+
case "sync": {
|
|
637
|
+
yield this._sendSyncMessage(message, sender);
|
|
638
|
+
return;
|
|
639
|
+
}
|
|
640
|
+
case "broadcast":
|
|
641
|
+
default: {
|
|
642
|
+
const sessionIds = options.sessionIds;
|
|
643
|
+
yield this._sendBroadcastMessage(message, sender, sessionIds);
|
|
644
|
+
}
|
|
645
|
+
}
|
|
629
646
|
})
|
|
630
647
|
);
|
|
631
648
|
this._uninitialize = () => __async(this, null, function* () {
|
|
@@ -633,10 +650,11 @@ var IORoom = class {
|
|
|
633
650
|
const encodedState = this._doc.getEncodedState();
|
|
634
651
|
this._doc.destroy();
|
|
635
652
|
this._doc = this._docFactory.getEmpty();
|
|
636
|
-
this._listeners.onDestroy(
|
|
653
|
+
this._listeners.onDestroy({
|
|
654
|
+
context: this._context,
|
|
637
655
|
encodedState,
|
|
638
656
|
room: this.id
|
|
639
|
-
})
|
|
657
|
+
});
|
|
640
658
|
this._uninitialize = null;
|
|
641
659
|
});
|
|
642
660
|
});
|
|
@@ -754,23 +772,17 @@ var IORoom = class {
|
|
|
754
772
|
return null;
|
|
755
773
|
}
|
|
756
774
|
}
|
|
757
|
-
_sendMessage(
|
|
758
|
-
return __async(this,
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
}
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
case "broadcast":
|
|
769
|
-
default: {
|
|
770
|
-
const sessionIds = options.sessionIds;
|
|
771
|
-
yield this._sendBroadcastMessage(message, sender, sessionIds);
|
|
772
|
-
}
|
|
773
|
-
}
|
|
775
|
+
_sendMessage(pluvWs, message) {
|
|
776
|
+
return __async(this, null, function* () {
|
|
777
|
+
const { data, type } = message;
|
|
778
|
+
this._listeners.onMessage({
|
|
779
|
+
context: this._context,
|
|
780
|
+
encodedState: this._doc.getEncodedState(),
|
|
781
|
+
message: { data, type },
|
|
782
|
+
room: this.id,
|
|
783
|
+
user: message.user
|
|
784
|
+
});
|
|
785
|
+
yield Promise.resolve(pluvWs.sendMessage(message));
|
|
774
786
|
});
|
|
775
787
|
}
|
|
776
788
|
_sendBroadcastMessage(message, sender, sessionIds) {
|
|
@@ -787,7 +799,7 @@ var IORoom = class {
|
|
|
787
799
|
var _a2;
|
|
788
800
|
const session = yield pluvWs.getSession();
|
|
789
801
|
const user = (_a2 = session.user) != null ? _a2 : null;
|
|
790
|
-
|
|
802
|
+
this._sendMessage(pluvWs, { connectionId, data, room, type, user });
|
|
791
803
|
}));
|
|
792
804
|
yield Promise.all(promises);
|
|
793
805
|
});
|
|
@@ -802,7 +814,7 @@ var IORoom = class {
|
|
|
802
814
|
if (message.type === "$PONG") yield this._emitQuitters();
|
|
803
815
|
const session = yield pluvWs.getSession();
|
|
804
816
|
const user = (_b = session.user) != null ? _b : null;
|
|
805
|
-
|
|
817
|
+
this._sendMessage(pluvWs, __spreadValues({
|
|
806
818
|
connectionId: senderId,
|
|
807
819
|
room: this.id,
|
|
808
820
|
user
|
|
@@ -848,114 +860,15 @@ var IORoom = class {
|
|
|
848
860
|
};
|
|
849
861
|
|
|
850
862
|
// src/version.generated.ts
|
|
851
|
-
var version = "0.
|
|
863
|
+
var version = "0.23.0";
|
|
852
864
|
|
|
853
865
|
// src/PluvServer.ts
|
|
854
866
|
var PluvServer = class {
|
|
855
867
|
constructor(options) {
|
|
856
|
-
this.
|
|
868
|
+
this.version = version;
|
|
857
869
|
this._authorize = null;
|
|
858
|
-
this.
|
|
859
|
-
|
|
860
|
-
const {
|
|
861
|
-
authorize: authorize2,
|
|
862
|
-
context,
|
|
863
|
-
crdt = import_crdt2.noop,
|
|
864
|
-
debug = false,
|
|
865
|
-
onRoomDeleted,
|
|
866
|
-
onStorageUpdated,
|
|
867
|
-
platform,
|
|
868
|
-
router = new PluvRouter({})
|
|
869
|
-
} = options;
|
|
870
|
-
this._crdt = crdt;
|
|
871
|
-
this._debug = debug;
|
|
872
|
-
this._platform = platform;
|
|
873
|
-
this._router = router != null ? router : null;
|
|
874
|
-
if (authorize2) this._authorize = authorize2;
|
|
875
|
-
if (context) this._context = context;
|
|
876
|
-
this._listeners = {
|
|
877
|
-
onRoomDeleted: (event) => onRoomDeleted == null ? void 0 : onRoomDeleted(event),
|
|
878
|
-
onStorageUpdated: (event) => onStorageUpdated == null ? void 0 : onStorageUpdated(event)
|
|
879
|
-
};
|
|
880
|
-
}
|
|
881
|
-
get _events() {
|
|
882
|
-
return this._router._events;
|
|
883
|
-
}
|
|
884
|
-
get _registrationMode() {
|
|
885
|
-
return this._platform._registrationMode;
|
|
886
|
-
}
|
|
887
|
-
createToken(params) {
|
|
888
|
-
return __async(this, null, function* () {
|
|
889
|
-
if (!this._authorize) {
|
|
890
|
-
throw new Error("IO does not specify authorize during initialization.");
|
|
891
|
-
}
|
|
892
|
-
const ioAuthorize = typeof this._authorize === "function" ? this._authorize(params) : this._authorize;
|
|
893
|
-
const secret = ioAuthorize.secret;
|
|
894
|
-
return yield authorize({
|
|
895
|
-
platform: this._platform,
|
|
896
|
-
secret
|
|
897
|
-
}).encode(params);
|
|
898
|
-
});
|
|
899
|
-
}
|
|
900
|
-
getRoom(room, ...options) {
|
|
901
|
-
var _a, _c;
|
|
902
|
-
const _b = (_a = options[0]) != null ? _a : {}, { debug } = _b, platformRoomContext = __objRest(_b, ["debug"]);
|
|
903
|
-
this._purgeEmptyRooms();
|
|
904
|
-
if (!/^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$/i.test(room)) {
|
|
905
|
-
throw new Error("Unsupported room name");
|
|
906
|
-
}
|
|
907
|
-
const platform = this._platform;
|
|
908
|
-
const oldRoom = this._rooms.get(room);
|
|
909
|
-
if (oldRoom) return oldRoom;
|
|
910
|
-
const roomContext = __spreadValues(__spreadValues({}, this._context), platformRoomContext);
|
|
911
|
-
const newRoom = new IORoom(room, {
|
|
912
|
-
authorize: (_c = this._authorize) != null ? _c : void 0,
|
|
913
|
-
context: roomContext,
|
|
914
|
-
crdt: this._crdt,
|
|
915
|
-
debug: debug != null ? debug : this._debug,
|
|
916
|
-
onDestroy: (_0) => __async(this, [_0], function* ({ encodedState, room: room2 }) {
|
|
917
|
-
this._logDebug(`${import_kleur2.default.blue("Deleting empty room:")} ${room2}`);
|
|
918
|
-
const roomContext2 = __spreadValues({
|
|
919
|
-
room: room2,
|
|
920
|
-
encodedState
|
|
921
|
-
}, platformRoomContext);
|
|
922
|
-
this._rooms.delete(room2);
|
|
923
|
-
yield Promise.resolve(this._listeners.onRoomDeleted(roomContext2));
|
|
924
|
-
yield this._platform.persistance.deleteStorageState(room2);
|
|
925
|
-
if (this._debug) {
|
|
926
|
-
const rooms = Array.from(this._rooms.keys());
|
|
927
|
-
this._logDebug(`${import_kleur2.default.blue("Deleted room:")} ${room2}`);
|
|
928
|
-
this._logDebug(`${import_kleur2.default.blue("Rooms available:")} ${rooms.join(", ")}`);
|
|
929
|
-
}
|
|
930
|
-
}),
|
|
931
|
-
platform,
|
|
932
|
-
router: this._router
|
|
933
|
-
});
|
|
934
|
-
this._rooms.set(room, newRoom);
|
|
935
|
-
if (this._debug) {
|
|
936
|
-
const rooms = Array.from(this._rooms.keys());
|
|
937
|
-
this._logDebug(`${import_kleur2.default.blue("Created room:")} ${room}`);
|
|
938
|
-
this._logDebug(`${import_kleur2.default.blue("Rooms available:")} ${rooms.join(", ")}`);
|
|
939
|
-
}
|
|
940
|
-
return newRoom;
|
|
941
|
-
}
|
|
942
|
-
_logDebug(...data) {
|
|
943
|
-
this._debug && console.log(...data);
|
|
944
|
-
}
|
|
945
|
-
_purgeEmptyRooms() {
|
|
946
|
-
const rooms = Array.from(this._rooms.entries());
|
|
947
|
-
rooms.forEach(([id, room]) => {
|
|
948
|
-
if (room.getSize()) return;
|
|
949
|
-
this._rooms.delete(id);
|
|
950
|
-
});
|
|
951
|
-
}
|
|
952
|
-
};
|
|
953
|
-
|
|
954
|
-
// src/PluvIO.ts
|
|
955
|
-
var PluvIO = class {
|
|
956
|
-
constructor(options) {
|
|
957
|
-
this._router = new PluvRouter({
|
|
958
|
-
$GET_OTHERS: this.procedure.sync((data, { room, session, sessions }) => {
|
|
870
|
+
this._baseRouter = new PluvRouter({
|
|
871
|
+
$GET_OTHERS: this._procedure.sync((data, { room, session, sessions }) => {
|
|
959
872
|
const currentTime = (/* @__PURE__ */ new Date()).getTime();
|
|
960
873
|
const others = sessions.filter((wsSession) => {
|
|
961
874
|
if (wsSession.id === (session == null ? void 0 : session.id)) return false;
|
|
@@ -975,7 +888,7 @@ var PluvIO = class {
|
|
|
975
888
|
);
|
|
976
889
|
return { $OTHERS_RECEIVED: { others } };
|
|
977
890
|
}),
|
|
978
|
-
$INITIALIZE_SESSION: this.
|
|
891
|
+
$INITIALIZE_SESSION: this._procedure.broadcast((data, { session }) => {
|
|
979
892
|
const presence = data == null ? void 0 : data.presence;
|
|
980
893
|
if (!session) return {};
|
|
981
894
|
session.presence = presence;
|
|
@@ -999,25 +912,30 @@ var PluvIO = class {
|
|
|
999
912
|
if (updates.some((_update) => !!_update)) {
|
|
1000
913
|
const encodedState = doc.batchApplyEncodedState(updates).getEncodedState();
|
|
1001
914
|
yield this._platform.persistance.setStorageState(room, encodedState);
|
|
1002
|
-
this._listeners.onStorageUpdated(
|
|
915
|
+
this._listeners.onStorageUpdated({ context, encodedState, room });
|
|
1003
916
|
}
|
|
1004
917
|
const state = (_b = yield this._platform.persistance.getStorageState(room)) != null ? _b : doc.getEncodedState();
|
|
1005
918
|
return { $STORAGE_RECEIVED: { state } };
|
|
1006
919
|
})),
|
|
1007
|
-
$PING: this.
|
|
920
|
+
$PING: this._procedure.self((data, { session }) => {
|
|
1008
921
|
if (!session) return {};
|
|
1009
922
|
const currentTime = (/* @__PURE__ */ new Date()).getTime();
|
|
1010
|
-
session.
|
|
923
|
+
const prevState = session.webSocket.state;
|
|
924
|
+
session.webSocket.state = __spreadProps(__spreadValues({}, prevState), {
|
|
925
|
+
timers: __spreadProps(__spreadValues({}, prevState.timers), {
|
|
926
|
+
ping: currentTime
|
|
927
|
+
})
|
|
928
|
+
});
|
|
1011
929
|
return { $PONG: {} };
|
|
1012
930
|
}),
|
|
1013
|
-
$UPDATE_PRESENCE: this.
|
|
931
|
+
$UPDATE_PRESENCE: this._procedure.broadcast((data, { session }) => {
|
|
1014
932
|
const presence = data == null ? void 0 : data.presence;
|
|
1015
933
|
if (!session) return {};
|
|
1016
934
|
const updated = Object.assign(/* @__PURE__ */ Object.create(null), session.presence, presence);
|
|
1017
935
|
session.webSocket.presence = updated;
|
|
1018
936
|
return { $PRESENCE_UPDATED: { presence: updated } };
|
|
1019
937
|
}),
|
|
1020
|
-
$UPDATE_STORAGE: this.
|
|
938
|
+
$UPDATE_STORAGE: this._procedure.broadcast((data, { context, doc, room }) => {
|
|
1021
939
|
var _a;
|
|
1022
940
|
const origin = data == null ? void 0 : data.origin;
|
|
1023
941
|
const update = (_a = data == null ? void 0 : data.update) != null ? _a : null;
|
|
@@ -1027,36 +945,40 @@ var PluvIO = class {
|
|
|
1027
945
|
const updated = update === null ? doc : doc.applyEncodedState({ update });
|
|
1028
946
|
const encodedState = updated.getEncodedState();
|
|
1029
947
|
this._platform.persistance.setStorageState(room, encodedState).then(() => {
|
|
1030
|
-
this._listeners.onStorageUpdated(
|
|
948
|
+
this._listeners.onStorageUpdated({
|
|
949
|
+
context,
|
|
1031
950
|
encodedState,
|
|
1032
951
|
room
|
|
1033
|
-
})
|
|
952
|
+
});
|
|
1034
953
|
});
|
|
1035
954
|
return { $STORAGE_UPDATED: { state: encodedState } };
|
|
1036
955
|
})
|
|
1037
956
|
});
|
|
1038
|
-
this._authorize = null;
|
|
1039
957
|
this._context = {};
|
|
1040
958
|
this._getInitialStorage = null;
|
|
1041
|
-
this.
|
|
959
|
+
this._rooms = /* @__PURE__ */ new Map();
|
|
1042
960
|
const {
|
|
1043
961
|
authorize: authorize2,
|
|
1044
962
|
context,
|
|
1045
|
-
crdt =
|
|
963
|
+
crdt = import_crdt2.noop,
|
|
1046
964
|
debug = false,
|
|
1047
965
|
getInitialStorage,
|
|
1048
966
|
onRoomDeleted,
|
|
967
|
+
onRoomMessage,
|
|
1049
968
|
onStorageUpdated,
|
|
1050
|
-
platform
|
|
969
|
+
platform,
|
|
970
|
+
router = new PluvRouter({})
|
|
1051
971
|
} = options;
|
|
1052
972
|
this._crdt = crdt;
|
|
1053
973
|
this._debug = debug;
|
|
1054
974
|
this._platform = platform;
|
|
975
|
+
this._router = router ? this._baseRouter : PluvRouter.merge(this._baseRouter, router);
|
|
1055
976
|
if (authorize2) this._authorize = authorize2;
|
|
1056
977
|
if (context) this._context = context;
|
|
1057
978
|
if (getInitialStorage) this._getInitialStorage = getInitialStorage;
|
|
1058
979
|
this._listeners = {
|
|
1059
980
|
onRoomDeleted: (event) => onRoomDeleted == null ? void 0 : onRoomDeleted(event),
|
|
981
|
+
onRoomMessage: (event) => onRoomMessage == null ? void 0 : onRoomMessage(event),
|
|
1060
982
|
onStorageUpdated: (event) => onStorageUpdated == null ? void 0 : onStorageUpdated(event)
|
|
1061
983
|
};
|
|
1062
984
|
}
|
|
@@ -1066,6 +988,88 @@ var PluvIO = class {
|
|
|
1066
988
|
get _registrationMode() {
|
|
1067
989
|
return this._platform._registrationMode;
|
|
1068
990
|
}
|
|
991
|
+
get _procedure() {
|
|
992
|
+
return new PluvProcedure();
|
|
993
|
+
}
|
|
994
|
+
createToken(params) {
|
|
995
|
+
return __async(this, null, function* () {
|
|
996
|
+
if (!this._authorize) {
|
|
997
|
+
throw new Error("IO does not specify authorize during initialization.");
|
|
998
|
+
}
|
|
999
|
+
const ioAuthorize = typeof this._authorize === "function" ? this._authorize(params) : this._authorize;
|
|
1000
|
+
const secret = ioAuthorize.secret;
|
|
1001
|
+
return yield authorize({
|
|
1002
|
+
platform: this._platform,
|
|
1003
|
+
secret
|
|
1004
|
+
}).encode(params);
|
|
1005
|
+
});
|
|
1006
|
+
}
|
|
1007
|
+
getRoom(room, ...options) {
|
|
1008
|
+
var _a, _c;
|
|
1009
|
+
const _b = (_a = options[0]) != null ? _a : {}, { debug } = _b, platformRoomContext = __objRest(_b, ["debug"]);
|
|
1010
|
+
this._purgeEmptyRooms();
|
|
1011
|
+
if (!/^[a-z0-9]+[a-z0-9\-_]+[a-z0-9]+$/i.test(room)) {
|
|
1012
|
+
throw new Error("Unsupported room name");
|
|
1013
|
+
}
|
|
1014
|
+
const platform = this._platform;
|
|
1015
|
+
const oldRoom = this._rooms.get(room);
|
|
1016
|
+
if (oldRoom) return oldRoom;
|
|
1017
|
+
const roomContext = __spreadValues(__spreadValues({}, this._context), platformRoomContext);
|
|
1018
|
+
const newRoom = new IORoom(room, {
|
|
1019
|
+
authorize: (_c = this._authorize) != null ? _c : void 0,
|
|
1020
|
+
context: roomContext,
|
|
1021
|
+
crdt: this._crdt,
|
|
1022
|
+
debug: debug != null ? debug : this._debug,
|
|
1023
|
+
onDestroy: (event) => __async(this, null, function* () {
|
|
1024
|
+
this._logDebug(`${import_kleur2.default.blue("Deleting empty room:")} ${room}`);
|
|
1025
|
+
this._rooms.delete(room);
|
|
1026
|
+
yield Promise.resolve(this._listeners.onRoomDeleted(event));
|
|
1027
|
+
yield this._platform.persistance.deleteStorageState(room);
|
|
1028
|
+
if (this._debug) {
|
|
1029
|
+
const rooms = Array.from(this._rooms.keys());
|
|
1030
|
+
this._logDebug(`${import_kleur2.default.blue("Deleted room:")} ${room}`);
|
|
1031
|
+
this._logDebug(`${import_kleur2.default.blue("Rooms available:")} ${rooms.join(", ")}`);
|
|
1032
|
+
}
|
|
1033
|
+
}),
|
|
1034
|
+
onMessage: (event) => __async(this, null, function* () {
|
|
1035
|
+
yield Promise.resolve(this._listeners.onRoomMessage(event));
|
|
1036
|
+
}),
|
|
1037
|
+
platform,
|
|
1038
|
+
router: this._router
|
|
1039
|
+
});
|
|
1040
|
+
this._rooms.set(room, newRoom);
|
|
1041
|
+
if (this._debug) {
|
|
1042
|
+
const rooms = Array.from(this._rooms.keys());
|
|
1043
|
+
this._logDebug(`${import_kleur2.default.blue("Created room:")} ${room}`);
|
|
1044
|
+
this._logDebug(`${import_kleur2.default.blue("Rooms available:")} ${rooms.join(", ")}`);
|
|
1045
|
+
}
|
|
1046
|
+
return newRoom;
|
|
1047
|
+
}
|
|
1048
|
+
_logDebug(...data) {
|
|
1049
|
+
this._debug && console.log(...data);
|
|
1050
|
+
}
|
|
1051
|
+
_purgeEmptyRooms() {
|
|
1052
|
+
const rooms = Array.from(this._rooms.entries());
|
|
1053
|
+
rooms.forEach(([id, room]) => {
|
|
1054
|
+
if (!!(room == null ? void 0 : room.getSize())) return;
|
|
1055
|
+
this._rooms.delete(id);
|
|
1056
|
+
});
|
|
1057
|
+
}
|
|
1058
|
+
};
|
|
1059
|
+
|
|
1060
|
+
// src/PluvIO.ts
|
|
1061
|
+
var PluvIO = class {
|
|
1062
|
+
constructor(options) {
|
|
1063
|
+
this.version = version;
|
|
1064
|
+
this._authorize = null;
|
|
1065
|
+
this._context = {};
|
|
1066
|
+
const { authorize: authorize2, context, crdt = import_crdt3.noop, debug = false, platform } = options;
|
|
1067
|
+
this._crdt = crdt;
|
|
1068
|
+
this._debug = debug;
|
|
1069
|
+
this._platform = platform;
|
|
1070
|
+
if (authorize2) this._authorize = authorize2;
|
|
1071
|
+
if (context) this._context = context;
|
|
1072
|
+
}
|
|
1069
1073
|
get procedure() {
|
|
1070
1074
|
return new PluvProcedure();
|
|
1071
1075
|
}
|
|
@@ -1088,29 +1092,24 @@ var PluvIO = class {
|
|
|
1088
1092
|
}
|
|
1089
1093
|
server(config = {}) {
|
|
1090
1094
|
var _a;
|
|
1091
|
-
|
|
1092
|
-
return new PluvServer(__spreadProps(__spreadValues({}, this._listeners), {
|
|
1095
|
+
return new PluvServer(__spreadProps(__spreadValues({}, config), {
|
|
1093
1096
|
authorize: (_a = this._authorize) != null ? _a : void 0,
|
|
1094
1097
|
context: this._context,
|
|
1095
1098
|
crdt: this._crdt,
|
|
1096
1099
|
debug: this._debug,
|
|
1097
|
-
platform: this._platform
|
|
1098
|
-
router
|
|
1100
|
+
platform: this._platform
|
|
1099
1101
|
}));
|
|
1100
1102
|
}
|
|
1101
1103
|
};
|
|
1102
1104
|
|
|
1103
1105
|
// src/createIO.ts
|
|
1104
1106
|
var createIO = (params) => {
|
|
1105
|
-
const { authorize: authorize2, context, crdt, debug,
|
|
1107
|
+
const { authorize: authorize2, context, crdt, debug, platform } = params;
|
|
1106
1108
|
return new PluvIO({
|
|
1107
1109
|
authorize: authorize2,
|
|
1108
1110
|
context,
|
|
1109
1111
|
crdt,
|
|
1110
1112
|
debug,
|
|
1111
|
-
getInitialStorage,
|
|
1112
|
-
onRoomDeleted,
|
|
1113
|
-
onStorageUpdated,
|
|
1114
1113
|
platform
|
|
1115
1114
|
});
|
|
1116
1115
|
};
|