@itee/client 10.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/CHANGELOG.md +251 -0
- package/LICENSE.md +23 -0
- package/README.md +76 -0
- package/builds/itee-client.cjs.js +6517 -0
- package/builds/itee-client.cjs.js.map +1 -0
- package/builds/itee-client.cjs.min.js +125 -0
- package/builds/itee-client.esm.js +6468 -0
- package/builds/itee-client.esm.js.map +1 -0
- package/builds/itee-client.esm.min.js +124 -0
- package/builds/itee-client.iife.js +6524 -0
- package/builds/itee-client.iife.js.map +1 -0
- package/builds/itee-client.iife.min.js +125 -0
- package/package.json +87 -0
- package/sources/client.js +14 -0
- package/sources/cores/TAbstractFactory.js +42 -0
- package/sources/cores/TCloningFactory.js +39 -0
- package/sources/cores/TConstants.js +433 -0
- package/sources/cores/TInstancingFactory.js +41 -0
- package/sources/cores/TStore.js +303 -0
- package/sources/cores/_cores.js +13 -0
- package/sources/input_devices/TKeyboardController.js +158 -0
- package/sources/input_devices/TMouseController.js +31 -0
- package/sources/input_devices/_inputDevices.js +11 -0
- package/sources/loaders/TBinaryConverter.js +35 -0
- package/sources/loaders/TBinaryReader.js +1029 -0
- package/sources/loaders/TBinarySerializer.js +258 -0
- package/sources/loaders/TBinaryWriter.js +429 -0
- package/sources/loaders/_loaders.js +21 -0
- package/sources/loaders/converters/ArrayBinaryConverter.js +33 -0
- package/sources/loaders/converters/BooleanBinaryConverter.js +24 -0
- package/sources/loaders/converters/DateBinaryConverter.js +21 -0
- package/sources/loaders/converters/NullBinaryConverter.js +13 -0
- package/sources/loaders/converters/NumberBinaryConverter.js +15 -0
- package/sources/loaders/converters/ObjectBinaryConverter.js +101 -0
- package/sources/loaders/converters/RegExBinaryConverter.js +11 -0
- package/sources/loaders/converters/StringBinaryConverter.js +26 -0
- package/sources/loaders/converters/UndefinedBinaryConverter.js +13 -0
- package/sources/managers/TDataBaseManager.js +1649 -0
- package/sources/managers/_managers.js +10 -0
- package/sources/utils/TIdFactory.js +84 -0
- package/sources/utils/_utils.js +9 -0
- package/sources/webapis/WebAPI.js +773 -0
- package/sources/webapis/WebAPIOrigin.js +141 -0
- package/sources/webapis/_webapis.js +10 -0
- package/sources/webapis/messages/WebAPIMessage.js +75 -0
- package/sources/webapis/messages/WebAPIMessageData.js +51 -0
- package/sources/webapis/messages/WebAPIMessageError.js +79 -0
- package/sources/webapis/messages/WebAPIMessageEvent.js +58 -0
- package/sources/webapis/messages/WebAPIMessageProgress.js +91 -0
- package/sources/webapis/messages/WebAPIMessageReady.js +66 -0
- package/sources/webapis/messages/WebAPIMessageRequest.js +94 -0
- package/sources/webapis/messages/WebAPIMessageResponse.js +80 -0
- package/sources/webapis/messages/_messages.js +16 -0
- package/sources/workers/AbstractWorker.js +149 -0
- package/sources/workers/_workers.js +10 -0
- package/sources/workers/messages/WorkerMessage.js +33 -0
- package/sources/workers/messages/WorkerMessageData.js +30 -0
- package/sources/workers/messages/WorkerMessageError.js +32 -0
- package/sources/workers/messages/WorkerMessageMethodCall.js +60 -0
- package/sources/workers/messages/WorkerMessageProgress.js +67 -0
- package/sources/workers/messages/_messages.js +14 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { TBinaryConverter } from '../TBinaryConverter.js'
|
|
2
|
+
|
|
3
|
+
// import { DefaultBinarySerializer } from '../TBinarySerializer'
|
|
4
|
+
|
|
5
|
+
class ArrayBinaryConverter extends TBinaryConverter {
|
|
6
|
+
constructor( serializer ) { super( Array, serializer ) }
|
|
7
|
+
|
|
8
|
+
to( writer, instance, options = {} ) {
|
|
9
|
+
|
|
10
|
+
const numberOfElements = instance.length
|
|
11
|
+
writer.setUint32( numberOfElements )
|
|
12
|
+
for ( let instanceElement of instance ) {
|
|
13
|
+
// DefaultBinarySerializer._serialize( instanceElement )
|
|
14
|
+
this.serializer._serialize( instanceElement )
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
}
|
|
18
|
+
from( reader, options = {} ) {
|
|
19
|
+
|
|
20
|
+
const numberOfElements = reader.getUint32()
|
|
21
|
+
const result = []
|
|
22
|
+
for ( let i = 0 ; i < numberOfElements ; i++ ) {
|
|
23
|
+
// const element = DefaultBinarySerializer._deserialize()
|
|
24
|
+
const element = this.serializer._deserialize()
|
|
25
|
+
result.push( element )
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return result
|
|
29
|
+
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { ArrayBinaryConverter }
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author [Tristan Valcke]{@link https://github.com/Itee}
|
|
3
|
+
* @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}
|
|
4
|
+
*/
|
|
5
|
+
import { TBinaryConverter } from '../TBinaryConverter.js'
|
|
6
|
+
|
|
7
|
+
class BooleanBinaryConverter extends TBinaryConverter {
|
|
8
|
+
|
|
9
|
+
constructor( serializer ) { super( Boolean, serializer ) }
|
|
10
|
+
|
|
11
|
+
to( writer, instance, options = {} ) {
|
|
12
|
+
|
|
13
|
+
writer.setBoolean( instance )
|
|
14
|
+
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
from( reader, options = {} ) {
|
|
18
|
+
|
|
19
|
+
return reader.getBoolean()
|
|
20
|
+
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { BooleanBinaryConverter }
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TBinaryConverter } from '../TBinaryConverter.js'
|
|
2
|
+
|
|
3
|
+
// import { DefaultBinarySerializer } from '../TBinarySerializer'
|
|
4
|
+
|
|
5
|
+
class DateBinaryConverter extends TBinaryConverter {
|
|
6
|
+
constructor( serializer ) { super( Date, serializer ) }
|
|
7
|
+
|
|
8
|
+
to( writer, instance, options = {} ) {
|
|
9
|
+
const utc = instance.toUTCString()
|
|
10
|
+
this.serializer._serialize( utc )
|
|
11
|
+
// DefaultBinarySerializer._serialize( utc )
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
from( reader, options = {} ) {
|
|
15
|
+
const utcString = this.serializer._deserialize()
|
|
16
|
+
// const utcString = DefaultBinarySerializer._deserialize()
|
|
17
|
+
return new Date( utcString )
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { DateBinaryConverter }
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TBinaryConverter } from '../TBinaryConverter.js'
|
|
2
|
+
|
|
3
|
+
class NullBinaryConverter extends TBinaryConverter {
|
|
4
|
+
constructor( serializer ) { super( null, serializer ) }
|
|
5
|
+
|
|
6
|
+
to( writer, instance, options = {} ) {}
|
|
7
|
+
|
|
8
|
+
from( reader, options = {} ) {
|
|
9
|
+
return null
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { NullBinaryConverter }
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TBinaryConverter } from '../TBinaryConverter.js'
|
|
2
|
+
|
|
3
|
+
class NumberBinaryConverter extends TBinaryConverter {
|
|
4
|
+
constructor( serializer ) { super( Number, serializer ) }
|
|
5
|
+
|
|
6
|
+
to( writer, instance, options = {} ) {
|
|
7
|
+
writer.setFloat64( instance )
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
from( reader, options = {} ) {
|
|
11
|
+
return reader.getFloat64()
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { NumberBinaryConverter }
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { TBinaryConverter } from '../TBinaryConverter.js'
|
|
2
|
+
|
|
3
|
+
// import { DefaultBinarySerializer } from '../TBinarySerializer'
|
|
4
|
+
|
|
5
|
+
class ObjectBinaryConverter extends TBinaryConverter {
|
|
6
|
+
constructor( subType, serializer ) { super( subType || Object, serializer ) }
|
|
7
|
+
|
|
8
|
+
to( writer, instance, options = {} ) {
|
|
9
|
+
|
|
10
|
+
// Keep only writable properties from instance
|
|
11
|
+
// Read-only property are considered as it ! And won't be serialized.
|
|
12
|
+
const descriptors = Object.getOwnPropertyDescriptors( instance )
|
|
13
|
+
const writablePropertyEntries = Object.values( descriptors )
|
|
14
|
+
.filter( ( value ) => value.writable && value.enumerable )
|
|
15
|
+
|
|
16
|
+
// Store number of writable properties of object for future deserialization loop
|
|
17
|
+
writer.setUint8( writablePropertyEntries.length )
|
|
18
|
+
|
|
19
|
+
for ( let [ key, property ] of writablePropertyEntries ) {
|
|
20
|
+
// console.log( key, property.value )
|
|
21
|
+
|
|
22
|
+
writer.setUint32( key.length )
|
|
23
|
+
writer.setString( key )
|
|
24
|
+
|
|
25
|
+
// target private method to allow buffer clipping on serialization
|
|
26
|
+
this.serializer._serialize( property.value )
|
|
27
|
+
// DefaultBinarySerializer._serialize( property.value )
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// const instanceKeys = Object.keys( instance )
|
|
31
|
+
// console.log( instanceKeys )
|
|
32
|
+
//
|
|
33
|
+
// const instanceEntries = Object.entries( instance )
|
|
34
|
+
// console.log( instanceEntries )
|
|
35
|
+
//
|
|
36
|
+
// const descriptors = Object.getOwnPropertyDescriptors( instance )
|
|
37
|
+
// for ( let descriptor in descriptors ) {
|
|
38
|
+
// if ( !instanceKeys.includes( descriptor ) ) { continue }
|
|
39
|
+
//
|
|
40
|
+
//
|
|
41
|
+
// if ( !descriptor.writable ) { continue }
|
|
42
|
+
//
|
|
43
|
+
//
|
|
44
|
+
// }
|
|
45
|
+
//
|
|
46
|
+
// const descKeys = Object.keys( descriptors )
|
|
47
|
+
// console.log( descKeys )
|
|
48
|
+
//
|
|
49
|
+
// const descEntries = Object.entries( descriptors )
|
|
50
|
+
// console.log( descEntries )
|
|
51
|
+
//
|
|
52
|
+
// const filteredVals = Object.values( descriptors )
|
|
53
|
+
// .filter( value => value.writable )
|
|
54
|
+
// console.log( filteredVals )
|
|
55
|
+
//
|
|
56
|
+
// const filtered = descEntries.filter( ( [ key, value ] ) => value.writable && value.enumerable )
|
|
57
|
+
// console.log( filtered )
|
|
58
|
+
|
|
59
|
+
// Store number of object keys for deserialization loop
|
|
60
|
+
// const keys = Object.keys( instance )
|
|
61
|
+
// writer.setUint8( keys.length )
|
|
62
|
+
//
|
|
63
|
+
// for ( let key of keys ) {
|
|
64
|
+
// if ( !instance.hasOwnProperty( key ) ) { continue }
|
|
65
|
+
//
|
|
66
|
+
// writer.setUint32( key.length )
|
|
67
|
+
// writer.setString( key )
|
|
68
|
+
//
|
|
69
|
+
// TBinarySerializer.serialize( instance[ key ] )
|
|
70
|
+
// }
|
|
71
|
+
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
from( reader, options = {} ) {
|
|
75
|
+
const instance = super.from( reader, options )
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
// const descriptors = Object.getOwnPropertyDescriptors( instance )
|
|
79
|
+
// const result = {}
|
|
80
|
+
const numberOfProperties = reader.getUint8()
|
|
81
|
+
for ( let i = 0 ; i < numberOfProperties ; i++ ) {
|
|
82
|
+
const keyLength = reader.getUint32()
|
|
83
|
+
const keyName = reader.getString( keyLength )
|
|
84
|
+
|
|
85
|
+
instance[ keyName ] = this.serializer._deserialize()
|
|
86
|
+
// instance[ keyName ] = DefaultBinarySerializer._deserialize()
|
|
87
|
+
//
|
|
88
|
+
// const descriptor = descriptors[ keyName ]
|
|
89
|
+
//
|
|
90
|
+
// if ( descriptor.writable ) {
|
|
91
|
+
// instance[ keyName ] = TBinarySerializer._deserialize()
|
|
92
|
+
// } else {
|
|
93
|
+
// var deseri = TBinarySerializer._deserialize()
|
|
94
|
+
// }
|
|
95
|
+
}
|
|
96
|
+
return instance
|
|
97
|
+
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export { ObjectBinaryConverter }
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TBinaryConverter } from '../TBinaryConverter.js'
|
|
2
|
+
|
|
3
|
+
class RegExBinaryConverter extends TBinaryConverter {
|
|
4
|
+
constructor( serializer ) { super( RegExp, serializer ) }
|
|
5
|
+
|
|
6
|
+
from( reader, options = {} ) {
|
|
7
|
+
return new RegExp()
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export { RegExBinaryConverter }
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author [Tristan Valcke]{@link https://github.com/Itee}
|
|
3
|
+
* @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}
|
|
4
|
+
*/
|
|
5
|
+
import { TBinaryConverter } from '../TBinaryConverter.js'
|
|
6
|
+
|
|
7
|
+
class StringBinaryConverter extends TBinaryConverter {
|
|
8
|
+
|
|
9
|
+
constructor( serializer ) { super( String, serializer ) }
|
|
10
|
+
|
|
11
|
+
to( writer, instance, options = {} ) {
|
|
12
|
+
|
|
13
|
+
writer.setUint32( instance.length )
|
|
14
|
+
writer.setString( instance )
|
|
15
|
+
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
from( reader, options = {} ) {
|
|
19
|
+
|
|
20
|
+
const stringLength = reader.getUint32()
|
|
21
|
+
return reader.getString( stringLength )
|
|
22
|
+
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { StringBinaryConverter }
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TBinaryConverter } from '../TBinaryConverter.js'
|
|
2
|
+
|
|
3
|
+
class UndefinedBinaryConverter extends TBinaryConverter {
|
|
4
|
+
constructor( serializer ) { super( null, serializer ) }
|
|
5
|
+
|
|
6
|
+
to( writer, instance, options = {} ) {}
|
|
7
|
+
|
|
8
|
+
from( reader, options = {} ) {
|
|
9
|
+
return undefined
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { UndefinedBinaryConverter }
|