@kokimoki/app 0.6.8 → 1.0.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/dist/index.d.ts +5 -1
- package/dist/index.js +5 -1
- package/dist/kokimoki-client copy.d.ts +57 -0
- package/dist/kokimoki-client copy.js +259 -0
- package/dist/kokimoki-client-refactored.d.ts +67 -0
- package/dist/kokimoki-client-refactored.js +422 -0
- package/dist/kokimoki-client.d.ts +26 -14
- package/dist/kokimoki-client.js +292 -103
- package/dist/kokimoki-queue.d.ts +34 -0
- package/dist/kokimoki-queue.js +30 -0
- package/dist/kokimoki-schema.d.ts +52 -0
- package/dist/kokimoki-schema.js +92 -0
- package/dist/kokimoki-store.d.ts +13 -0
- package/dist/kokimoki-store.js +48 -0
- package/dist/kokimoki-transaction.d.ts +25 -0
- package/dist/kokimoki-transaction.js +99 -0
- package/dist/message-queue.d.ts +8 -0
- package/dist/message-queue.js +19 -0
- package/dist/room-subscription-mode.d.ts +5 -0
- package/dist/room-subscription-mode.js +6 -0
- package/dist/room-subscription.d.ts +15 -0
- package/dist/room-subscription.js +49 -0
- package/dist/synced-schema.d.ts +52 -0
- package/dist/synced-schema.js +92 -0
- package/dist/synced-store copy.d.ts +7 -0
- package/dist/synced-store copy.js +9 -0
- package/dist/synced-types.d.ts +45 -0
- package/dist/synced-types.js +72 -0
- package/dist/types/events.d.ts +1 -2
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/ws-message/index.d.ts +3 -0
- package/dist/ws-message/index.js +3 -0
- package/dist/ws-message/ws-message-reader.d.ts +9 -0
- package/dist/ws-message/ws-message-reader.js +17 -0
- package/dist/ws-message/ws-message-type.d.ts +4 -0
- package/dist/ws-message/ws-message-type.js +5 -0
- package/dist/ws-message/ws-message-writer.d.ts +12 -0
- package/dist/ws-message/ws-message-writer.js +30 -0
- package/dist/ws-message-reader.d.ts +11 -0
- package/dist/ws-message-reader.js +36 -0
- package/dist/ws-message-type.d.ts +9 -0
- package/dist/ws-message-type.js +10 -0
- package/dist/ws-message-writer.d.ts +9 -0
- package/dist/ws-message-writer.js +45 -0
- package/dist/ws-message.d.ts +14 -0
- package/dist/ws-message.js +34 -0
- package/package.json +4 -4
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class WsMessageReader {
|
|
2
|
+
private buffer;
|
|
3
|
+
private _view;
|
|
4
|
+
private _offset;
|
|
5
|
+
constructor(buffer: ArrayBuffer);
|
|
6
|
+
readInt32(): number;
|
|
7
|
+
readUint32(): number;
|
|
8
|
+
readString(): string;
|
|
9
|
+
readUint8Array(): Uint8Array;
|
|
10
|
+
get end(): boolean;
|
|
11
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export class WsMessageReader {
|
|
2
|
+
buffer;
|
|
3
|
+
_view;
|
|
4
|
+
_offset = 0;
|
|
5
|
+
constructor(buffer) {
|
|
6
|
+
this.buffer = buffer;
|
|
7
|
+
this._view = new DataView(buffer);
|
|
8
|
+
}
|
|
9
|
+
readInt32() {
|
|
10
|
+
const value = this._view.getInt32(this._offset, true);
|
|
11
|
+
this._offset += 4;
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
readUint32() {
|
|
15
|
+
const value = this._view.getUint32(this._offset, true);
|
|
16
|
+
this._offset += 4;
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
readString() {
|
|
20
|
+
const length = this.readInt32();
|
|
21
|
+
let value = "";
|
|
22
|
+
for (let i = 0; i < length; i++) {
|
|
23
|
+
value += String.fromCharCode(this._view.getUint8(this._offset++));
|
|
24
|
+
}
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
readUint8Array() {
|
|
28
|
+
const length = this.readInt32();
|
|
29
|
+
const value = new Uint8Array(this.buffer, this._offset, length);
|
|
30
|
+
this._offset += length;
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
get end() {
|
|
34
|
+
return this._offset === this.buffer.byteLength;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export var WsMessageType;
|
|
2
|
+
(function (WsMessageType) {
|
|
3
|
+
WsMessageType[WsMessageType["SubscribeReq"] = 1] = "SubscribeReq";
|
|
4
|
+
WsMessageType[WsMessageType["SubscribeRes"] = 2] = "SubscribeRes";
|
|
5
|
+
WsMessageType[WsMessageType["Transaction"] = 3] = "Transaction";
|
|
6
|
+
WsMessageType[WsMessageType["RoomUpdate"] = 4] = "RoomUpdate";
|
|
7
|
+
WsMessageType[WsMessageType["Error"] = 5] = "Error";
|
|
8
|
+
WsMessageType[WsMessageType["Ping"] = 6] = "Ping";
|
|
9
|
+
WsMessageType[WsMessageType["Pong"] = 7] = "Pong";
|
|
10
|
+
})(WsMessageType || (WsMessageType = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class WsMessageWriter {
|
|
2
|
+
private _parts;
|
|
3
|
+
writeInt32(value: number): void;
|
|
4
|
+
writeUint32(value: number): void;
|
|
5
|
+
writeString(value: string): void;
|
|
6
|
+
writeChar(value: string): void;
|
|
7
|
+
writeUint8Array(value: Uint8Array): void;
|
|
8
|
+
getBuffer(): ArrayBuffer;
|
|
9
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export class WsMessageWriter {
|
|
2
|
+
_parts = [];
|
|
3
|
+
writeInt32(value) {
|
|
4
|
+
const buffer = new Uint8Array(4);
|
|
5
|
+
const view = new DataView(buffer.buffer);
|
|
6
|
+
view.setInt32(0, value, true);
|
|
7
|
+
this._parts.push(buffer);
|
|
8
|
+
}
|
|
9
|
+
writeUint32(value) {
|
|
10
|
+
const buffer = new Uint8Array(4);
|
|
11
|
+
const view = new DataView(buffer.buffer);
|
|
12
|
+
view.setUint32(0, value, true);
|
|
13
|
+
this._parts.push(buffer);
|
|
14
|
+
}
|
|
15
|
+
writeString(value) {
|
|
16
|
+
// Write length
|
|
17
|
+
this.writeInt32(value.length);
|
|
18
|
+
// Write chars
|
|
19
|
+
const buffer = new Uint8Array(value.length);
|
|
20
|
+
for (let i = 0; i < value.length; i++) {
|
|
21
|
+
buffer[i] = value.charCodeAt(i);
|
|
22
|
+
}
|
|
23
|
+
this._parts.push(buffer);
|
|
24
|
+
}
|
|
25
|
+
writeChar(value) {
|
|
26
|
+
const buffer = new Uint8Array(1);
|
|
27
|
+
buffer[0] = value.charCodeAt(0);
|
|
28
|
+
this._parts.push(buffer);
|
|
29
|
+
}
|
|
30
|
+
writeUint8Array(value) {
|
|
31
|
+
this.writeInt32(value.byteLength);
|
|
32
|
+
this._parts.push(value);
|
|
33
|
+
}
|
|
34
|
+
getBuffer() {
|
|
35
|
+
const size = this._parts.reduce((acc, part) => acc + part.byteLength, 0);
|
|
36
|
+
const buffer = new ArrayBuffer(size);
|
|
37
|
+
let offset = 0;
|
|
38
|
+
for (const part of this._parts) {
|
|
39
|
+
const view = new Uint8Array(buffer, offset);
|
|
40
|
+
view.set(part);
|
|
41
|
+
offset += part.byteLength;
|
|
42
|
+
}
|
|
43
|
+
return buffer;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare enum WsMessageType {
|
|
2
|
+
Subscribe = 1
|
|
3
|
+
}
|
|
4
|
+
export declare class WsMessage {
|
|
5
|
+
type: WsMessageType;
|
|
6
|
+
payloadLength: number;
|
|
7
|
+
private _buffer;
|
|
8
|
+
private _view;
|
|
9
|
+
private _offset;
|
|
10
|
+
constructor(type: WsMessageType, payloadLength: number);
|
|
11
|
+
writeInt32(value: number): void;
|
|
12
|
+
writeString(value: string): void;
|
|
13
|
+
get buffer(): ArrayBuffer;
|
|
14
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export var WsMessageType;
|
|
2
|
+
(function (WsMessageType) {
|
|
3
|
+
WsMessageType[WsMessageType["Subscribe"] = 1] = "Subscribe";
|
|
4
|
+
})(WsMessageType || (WsMessageType = {}));
|
|
5
|
+
export class WsMessage {
|
|
6
|
+
type;
|
|
7
|
+
payloadLength;
|
|
8
|
+
_buffer;
|
|
9
|
+
_view;
|
|
10
|
+
_offset = 0;
|
|
11
|
+
constructor(type, payloadLength) {
|
|
12
|
+
this.type = type;
|
|
13
|
+
this.payloadLength = payloadLength;
|
|
14
|
+
this._buffer = new ArrayBuffer(4 + payloadLength);
|
|
15
|
+
this._view = new DataView(this._buffer);
|
|
16
|
+
// Write type
|
|
17
|
+
this.writeInt32(type);
|
|
18
|
+
}
|
|
19
|
+
writeInt32(value) {
|
|
20
|
+
this._view.setInt32(this._offset, value, true);
|
|
21
|
+
this._offset += 4;
|
|
22
|
+
}
|
|
23
|
+
writeString(value) {
|
|
24
|
+
// Write length
|
|
25
|
+
this.writeInt32(value.length);
|
|
26
|
+
// Write chars
|
|
27
|
+
for (let i = 0; i < value.length; i++) {
|
|
28
|
+
this._view.setUint8(this._offset++, value.charCodeAt(i));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
get buffer() {
|
|
32
|
+
return this._buffer;
|
|
33
|
+
}
|
|
34
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kokimoki/app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Kokimoki app",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
"typescript": "^5.1.6"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@hocuspocus/provider": "^2.2.3",
|
|
27
|
-
"@syncedstore/core": "^0.5.2",
|
|
28
26
|
"events": "^3.3.0",
|
|
29
|
-
"typed-emitter": "^2.1.0"
|
|
27
|
+
"typed-emitter": "^2.1.0",
|
|
28
|
+
"valtio": "^1.13.1",
|
|
29
|
+
"valtio-yjs": "^0.5.1"
|
|
30
30
|
}
|
|
31
31
|
}
|