@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.
Files changed (61) hide show
  1. package/CHANGELOG.md +251 -0
  2. package/LICENSE.md +23 -0
  3. package/README.md +76 -0
  4. package/builds/itee-client.cjs.js +6517 -0
  5. package/builds/itee-client.cjs.js.map +1 -0
  6. package/builds/itee-client.cjs.min.js +125 -0
  7. package/builds/itee-client.esm.js +6468 -0
  8. package/builds/itee-client.esm.js.map +1 -0
  9. package/builds/itee-client.esm.min.js +124 -0
  10. package/builds/itee-client.iife.js +6524 -0
  11. package/builds/itee-client.iife.js.map +1 -0
  12. package/builds/itee-client.iife.min.js +125 -0
  13. package/package.json +87 -0
  14. package/sources/client.js +14 -0
  15. package/sources/cores/TAbstractFactory.js +42 -0
  16. package/sources/cores/TCloningFactory.js +39 -0
  17. package/sources/cores/TConstants.js +433 -0
  18. package/sources/cores/TInstancingFactory.js +41 -0
  19. package/sources/cores/TStore.js +303 -0
  20. package/sources/cores/_cores.js +13 -0
  21. package/sources/input_devices/TKeyboardController.js +158 -0
  22. package/sources/input_devices/TMouseController.js +31 -0
  23. package/sources/input_devices/_inputDevices.js +11 -0
  24. package/sources/loaders/TBinaryConverter.js +35 -0
  25. package/sources/loaders/TBinaryReader.js +1029 -0
  26. package/sources/loaders/TBinarySerializer.js +258 -0
  27. package/sources/loaders/TBinaryWriter.js +429 -0
  28. package/sources/loaders/_loaders.js +21 -0
  29. package/sources/loaders/converters/ArrayBinaryConverter.js +33 -0
  30. package/sources/loaders/converters/BooleanBinaryConverter.js +24 -0
  31. package/sources/loaders/converters/DateBinaryConverter.js +21 -0
  32. package/sources/loaders/converters/NullBinaryConverter.js +13 -0
  33. package/sources/loaders/converters/NumberBinaryConverter.js +15 -0
  34. package/sources/loaders/converters/ObjectBinaryConverter.js +101 -0
  35. package/sources/loaders/converters/RegExBinaryConverter.js +11 -0
  36. package/sources/loaders/converters/StringBinaryConverter.js +26 -0
  37. package/sources/loaders/converters/UndefinedBinaryConverter.js +13 -0
  38. package/sources/managers/TDataBaseManager.js +1649 -0
  39. package/sources/managers/_managers.js +10 -0
  40. package/sources/utils/TIdFactory.js +84 -0
  41. package/sources/utils/_utils.js +9 -0
  42. package/sources/webapis/WebAPI.js +773 -0
  43. package/sources/webapis/WebAPIOrigin.js +141 -0
  44. package/sources/webapis/_webapis.js +10 -0
  45. package/sources/webapis/messages/WebAPIMessage.js +75 -0
  46. package/sources/webapis/messages/WebAPIMessageData.js +51 -0
  47. package/sources/webapis/messages/WebAPIMessageError.js +79 -0
  48. package/sources/webapis/messages/WebAPIMessageEvent.js +58 -0
  49. package/sources/webapis/messages/WebAPIMessageProgress.js +91 -0
  50. package/sources/webapis/messages/WebAPIMessageReady.js +66 -0
  51. package/sources/webapis/messages/WebAPIMessageRequest.js +94 -0
  52. package/sources/webapis/messages/WebAPIMessageResponse.js +80 -0
  53. package/sources/webapis/messages/_messages.js +16 -0
  54. package/sources/workers/AbstractWorker.js +149 -0
  55. package/sources/workers/_workers.js +10 -0
  56. package/sources/workers/messages/WorkerMessage.js +33 -0
  57. package/sources/workers/messages/WorkerMessageData.js +30 -0
  58. package/sources/workers/messages/WorkerMessageError.js +32 -0
  59. package/sources/workers/messages/WorkerMessageMethodCall.js +60 -0
  60. package/sources/workers/messages/WorkerMessageProgress.js +67 -0
  61. 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 }