@matter/general 0.11.0-alpha.0-20241005-e3e4e4a7a
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/LICENSE +201 -0
- package/README.md +3 -0
- package/dist/cjs/MatterError.d.ts +95 -0
- package/dist/cjs/MatterError.d.ts.map +1 -0
- package/dist/cjs/MatterError.js +177 -0
- package/dist/cjs/MatterError.js.map +6 -0
- package/dist/cjs/codec/Base64Codec.d.ts +23 -0
- package/dist/cjs/codec/Base64Codec.d.ts.map +1 -0
- package/dist/cjs/codec/Base64Codec.js +134 -0
- package/dist/cjs/codec/Base64Codec.js.map +6 -0
- package/dist/cjs/codec/DerCodec.d.ts +83 -0
- package/dist/cjs/codec/DerCodec.d.ts.map +1 -0
- package/dist/cjs/codec/DerCodec.js +286 -0
- package/dist/cjs/codec/DerCodec.js.map +6 -0
- package/dist/cjs/codec/DerTypes.d.ts +73 -0
- package/dist/cjs/codec/DerTypes.d.ts.map +1 -0
- package/dist/cjs/codec/DerTypes.js +132 -0
- package/dist/cjs/codec/DerTypes.js.map +6 -0
- package/dist/cjs/codec/DnsCodec.d.ts +86 -0
- package/dist/cjs/codec/DnsCodec.d.ts.map +1 -0
- package/dist/cjs/codec/DnsCodec.js +355 -0
- package/dist/cjs/codec/DnsCodec.js.map +6 -0
- package/dist/cjs/codec/index.d.ts +10 -0
- package/dist/cjs/codec/index.d.ts.map +1 -0
- package/dist/cjs/codec/index.js +27 -0
- package/dist/cjs/codec/index.js.map +6 -0
- package/dist/cjs/crypto/Crypto.d.ts +169 -0
- package/dist/cjs/crypto/Crypto.d.ts.map +1 -0
- package/dist/cjs/crypto/Crypto.js +103 -0
- package/dist/cjs/crypto/Crypto.js.map +6 -0
- package/dist/cjs/crypto/CryptoConstants.d.ts +19 -0
- package/dist/cjs/crypto/CryptoConstants.d.ts.map +1 -0
- package/dist/cjs/crypto/CryptoConstants.js +48 -0
- package/dist/cjs/crypto/CryptoConstants.js.map +6 -0
- package/dist/cjs/crypto/Key.d.ts +171 -0
- package/dist/cjs/crypto/Key.d.ts.map +1 -0
- package/dist/cjs/crypto/Key.js +356 -0
- package/dist/cjs/crypto/Key.js.map +6 -0
- package/dist/cjs/crypto/Spake2p.d.ts +40 -0
- package/dist/cjs/crypto/Spake2p.d.ts.map +1 -0
- package/dist/cjs/crypto/Spake2p.js +128 -0
- package/dist/cjs/crypto/Spake2p.js.map +6 -0
- package/dist/cjs/crypto/index.d.ts +10 -0
- package/dist/cjs/crypto/index.d.ts.map +1 -0
- package/dist/cjs/crypto/index.js +27 -0
- package/dist/cjs/crypto/index.js.map +6 -0
- package/dist/cjs/environment/Environment.d.ts +96 -0
- package/dist/cjs/environment/Environment.d.ts.map +1 -0
- package/dist/cjs/environment/Environment.js +199 -0
- package/dist/cjs/environment/Environment.js.map +6 -0
- package/dist/cjs/environment/Environmental.d.ts +52 -0
- package/dist/cjs/environment/Environmental.d.ts.map +1 -0
- package/dist/cjs/environment/Environmental.js +33 -0
- package/dist/cjs/environment/Environmental.js.map +6 -0
- package/dist/cjs/environment/RuntimeService.d.ts +107 -0
- package/dist/cjs/environment/RuntimeService.d.ts.map +1 -0
- package/dist/cjs/environment/RuntimeService.js +222 -0
- package/dist/cjs/environment/RuntimeService.js.map +6 -0
- package/dist/cjs/environment/VariableService.d.ts +58 -0
- package/dist/cjs/environment/VariableService.d.ts.map +1 -0
- package/dist/cjs/environment/VariableService.js +257 -0
- package/dist/cjs/environment/VariableService.js.map +6 -0
- package/dist/cjs/environment/index.d.ts +10 -0
- package/dist/cjs/environment/index.d.ts.map +1 -0
- package/dist/cjs/environment/index.js +27 -0
- package/dist/cjs/environment/index.js.map +6 -0
- package/dist/cjs/index.d.ts +17 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +34 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/log/Diagnostic.d.ts +140 -0
- package/dist/cjs/log/Diagnostic.d.ts.map +1 -0
- package/dist/cjs/log/Diagnostic.js +297 -0
- package/dist/cjs/log/Diagnostic.js.map +6 -0
- package/dist/cjs/log/DiagnosticSource.d.ts +16 -0
- package/dist/cjs/log/DiagnosticSource.d.ts.map +1 -0
- package/dist/cjs/log/DiagnosticSource.js +45 -0
- package/dist/cjs/log/DiagnosticSource.js.map +6 -0
- package/dist/cjs/log/LogFormat.d.ts +33 -0
- package/dist/cjs/log/LogFormat.d.ts.map +1 -0
- package/dist/cjs/log/LogFormat.js +503 -0
- package/dist/cjs/log/LogFormat.js.map +6 -0
- package/dist/cjs/log/LogLevel.d.ts +18 -0
- package/dist/cjs/log/LogLevel.d.ts.map +1 -0
- package/dist/cjs/log/LogLevel.js +57 -0
- package/dist/cjs/log/LogLevel.js.map +6 -0
- package/dist/cjs/log/Logger.d.ts +220 -0
- package/dist/cjs/log/Logger.d.ts.map +1 -0
- package/dist/cjs/log/Logger.js +401 -0
- package/dist/cjs/log/Logger.js.map +6 -0
- package/dist/cjs/log/index.d.ts +11 -0
- package/dist/cjs/log/index.d.ts.map +1 -0
- package/dist/cjs/log/index.js +28 -0
- package/dist/cjs/log/index.js.map +6 -0
- package/dist/cjs/math/ReedSolomon.d.ts +11 -0
- package/dist/cjs/math/ReedSolomon.d.ts.map +1 -0
- package/dist/cjs/math/ReedSolomon.js +109 -0
- package/dist/cjs/math/ReedSolomon.js.map +6 -0
- package/dist/cjs/math/Verhoeff.d.ts +17 -0
- package/dist/cjs/math/Verhoeff.d.ts.map +1 -0
- package/dist/cjs/math/Verhoeff.js +64 -0
- package/dist/cjs/math/Verhoeff.js.map +6 -0
- package/dist/cjs/math/index.d.ts +8 -0
- package/dist/cjs/math/index.d.ts.map +1 -0
- package/dist/cjs/math/index.js +25 -0
- package/dist/cjs/math/index.js.map +6 -0
- package/dist/cjs/net/Channel.d.ts +24 -0
- package/dist/cjs/net/Channel.d.ts.map +1 -0
- package/dist/cjs/net/Channel.js +35 -0
- package/dist/cjs/net/Channel.js.map +6 -0
- package/dist/cjs/net/NetInterface.d.ts +24 -0
- package/dist/cjs/net/NetInterface.d.ts.map +1 -0
- package/dist/cjs/net/NetInterface.js +42 -0
- package/dist/cjs/net/NetInterface.js.map +6 -0
- package/dist/cjs/net/Network.d.ts +54 -0
- package/dist/cjs/net/Network.d.ts.map +1 -0
- package/dist/cjs/net/Network.js +50 -0
- package/dist/cjs/net/Network.js.map +6 -0
- package/dist/cjs/net/ServerAddress.d.ts +17 -0
- package/dist/cjs/net/ServerAddress.d.ts.map +1 -0
- package/dist/cjs/net/ServerAddress.js +32 -0
- package/dist/cjs/net/ServerAddress.js.map +6 -0
- package/dist/cjs/net/TransportInterface.d.ts +40 -0
- package/dist/cjs/net/TransportInterface.d.ts.map +1 -0
- package/dist/cjs/net/TransportInterface.js +55 -0
- package/dist/cjs/net/TransportInterface.js.map +6 -0
- package/dist/cjs/net/UdpChannel.d.ts +25 -0
- package/dist/cjs/net/UdpChannel.d.ts.map +1 -0
- package/dist/cjs/net/UdpChannel.js +30 -0
- package/dist/cjs/net/UdpChannel.js.map +6 -0
- package/dist/cjs/net/UdpInterface.d.ts +35 -0
- package/dist/cjs/net/UdpInterface.d.ts.map +1 -0
- package/dist/cjs/net/UdpInterface.js +82 -0
- package/dist/cjs/net/UdpInterface.js.map +6 -0
- package/dist/cjs/net/UdpMulticastServer.d.ts +30 -0
- package/dist/cjs/net/UdpMulticastServer.d.ts.map +1 -0
- package/dist/cjs/net/UdpMulticastServer.js +133 -0
- package/dist/cjs/net/UdpMulticastServer.js.map +6 -0
- package/dist/cjs/net/index.d.ts +17 -0
- package/dist/cjs/net/index.d.ts.map +1 -0
- package/dist/cjs/net/index.js +34 -0
- package/dist/cjs/net/index.js.map +6 -0
- package/dist/cjs/net/mock/MockNetwork.d.ts +19 -0
- package/dist/cjs/net/mock/MockNetwork.d.ts.map +1 -0
- package/dist/cjs/net/mock/MockNetwork.js +56 -0
- package/dist/cjs/net/mock/MockNetwork.js.map +6 -0
- package/dist/cjs/net/mock/MockUdpChannel.d.ts +27 -0
- package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -0
- package/dist/cjs/net/mock/MockUdpChannel.js +76 -0
- package/dist/cjs/net/mock/MockUdpChannel.js.map +6 -0
- package/dist/cjs/net/mock/NetworkSimulator.d.ts +18 -0
- package/dist/cjs/net/mock/NetworkSimulator.d.ts.map +1 -0
- package/dist/cjs/net/mock/NetworkSimulator.js +73 -0
- package/dist/cjs/net/mock/NetworkSimulator.js.map +6 -0
- package/dist/cjs/package.json +6 -0
- package/dist/cjs/polyfills/disposable.d.ts +7 -0
- package/dist/cjs/polyfills/disposable.d.ts.map +1 -0
- package/dist/cjs/polyfills/disposable.js +19 -0
- package/dist/cjs/polyfills/disposable.js.map +6 -0
- package/dist/cjs/polyfills/index.d.ts +7 -0
- package/dist/cjs/polyfills/index.d.ts.map +1 -0
- package/dist/cjs/polyfills/index.js +8 -0
- package/dist/cjs/polyfills/index.js.map +6 -0
- package/dist/cjs/storage/Storage.d.ts +54 -0
- package/dist/cjs/storage/Storage.d.ts.map +1 -0
- package/dist/cjs/storage/Storage.js +38 -0
- package/dist/cjs/storage/Storage.js.map +6 -0
- package/dist/cjs/storage/StorageBackendMemory.d.ts +27 -0
- package/dist/cjs/storage/StorageBackendMemory.d.ts.map +1 -0
- package/dist/cjs/storage/StorageBackendMemory.js +131 -0
- package/dist/cjs/storage/StorageBackendMemory.js.map +6 -0
- package/dist/cjs/storage/StorageContext.d.ts +26 -0
- package/dist/cjs/storage/StorageContext.d.ts.map +1 -0
- package/dist/cjs/storage/StorageContext.js +117 -0
- package/dist/cjs/storage/StorageContext.js.map +6 -0
- package/dist/cjs/storage/StorageManager.d.ts +17 -0
- package/dist/cjs/storage/StorageManager.d.ts.map +1 -0
- package/dist/cjs/storage/StorageManager.js +59 -0
- package/dist/cjs/storage/StorageManager.js.map +6 -0
- package/dist/cjs/storage/StorageService.d.ts +35 -0
- package/dist/cjs/storage/StorageService.d.ts.map +1 -0
- package/dist/cjs/storage/StorageService.js +82 -0
- package/dist/cjs/storage/StorageService.js.map +6 -0
- package/dist/cjs/storage/StringifyTools.d.ts +16 -0
- package/dist/cjs/storage/StringifyTools.d.ts.map +1 -0
- package/dist/cjs/storage/StringifyTools.js +105 -0
- package/dist/cjs/storage/StringifyTools.js.map +6 -0
- package/dist/cjs/storage/index.d.ts +12 -0
- package/dist/cjs/storage/index.d.ts.map +1 -0
- package/dist/cjs/storage/index.js +29 -0
- package/dist/cjs/storage/index.js.map +6 -0
- package/dist/cjs/time/Time.d.ts +66 -0
- package/dist/cjs/time/Time.d.ts.map +1 -0
- package/dist/cjs/time/Time.js +137 -0
- package/dist/cjs/time/Time.js.map +6 -0
- package/dist/cjs/time/index.d.ts +7 -0
- package/dist/cjs/time/index.d.ts.map +1 -0
- package/dist/cjs/time/index.js +24 -0
- package/dist/cjs/time/index.js.map +6 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/cjs/util/Array.d.ts +12 -0
- package/dist/cjs/util/Array.d.ts.map +1 -0
- package/dist/cjs/util/Array.js +24 -0
- package/dist/cjs/util/Array.js.map +6 -0
- package/dist/cjs/util/Bytes.d.ts +23 -0
- package/dist/cjs/util/Bytes.d.ts.map +1 -0
- package/dist/cjs/util/Bytes.js +95 -0
- package/dist/cjs/util/Bytes.js.map +6 -0
- package/dist/cjs/util/Cache.d.ts +33 -0
- package/dist/cjs/util/Cache.d.ts.map +1 -0
- package/dist/cjs/util/Cache.js +114 -0
- package/dist/cjs/util/Cache.js.map +6 -0
- package/dist/cjs/util/Construction.d.ts +182 -0
- package/dist/cjs/util/Construction.d.ts.map +1 -0
- package/dist/cjs/util/Construction.js +417 -0
- package/dist/cjs/util/Construction.js.map +6 -0
- package/dist/cjs/util/DataReadQueue.d.ts +17 -0
- package/dist/cjs/util/DataReadQueue.d.ts.map +1 -0
- package/dist/cjs/util/DataReadQueue.js +76 -0
- package/dist/cjs/util/DataReadQueue.js.map +6 -0
- package/dist/cjs/util/DataReader.d.ts +32 -0
- package/dist/cjs/util/DataReader.d.ts.map +1 -0
- package/dist/cjs/util/DataReader.js +101 -0
- package/dist/cjs/util/DataReader.js.map +6 -0
- package/dist/cjs/util/DataWriter.d.ts +26 -0
- package/dist/cjs/util/DataWriter.d.ts.map +1 -0
- package/dist/cjs/util/DataWriter.js +114 -0
- package/dist/cjs/util/DataWriter.js.map +6 -0
- package/dist/cjs/util/DeepCopy.d.ts +12 -0
- package/dist/cjs/util/DeepCopy.d.ts.map +1 -0
- package/dist/cjs/util/DeepCopy.js +58 -0
- package/dist/cjs/util/DeepCopy.js.map +6 -0
- package/dist/cjs/util/DeepEqual.d.ts +7 -0
- package/dist/cjs/util/DeepEqual.d.ts.map +1 -0
- package/dist/cjs/util/DeepEqual.js +55 -0
- package/dist/cjs/util/DeepEqual.js.map +6 -0
- package/dist/cjs/util/Error.d.ts +12 -0
- package/dist/cjs/util/Error.d.ts.map +1 -0
- package/dist/cjs/util/Error.js +41 -0
- package/dist/cjs/util/Error.js.map +6 -0
- package/dist/cjs/util/GeneratedClass.d.ts +62 -0
- package/dist/cjs/util/GeneratedClass.d.ts.map +1 -0
- package/dist/cjs/util/GeneratedClass.js +117 -0
- package/dist/cjs/util/GeneratedClass.js.map +6 -0
- package/dist/cjs/util/Introspection.d.ts +38 -0
- package/dist/cjs/util/Introspection.d.ts.map +1 -0
- package/dist/cjs/util/Introspection.js +85 -0
- package/dist/cjs/util/Introspection.js.map +6 -0
- package/dist/cjs/util/Ip.d.ts +8 -0
- package/dist/cjs/util/Ip.d.ts.map +1 -0
- package/dist/cjs/util/Ip.js +90 -0
- package/dist/cjs/util/Ip.js.map +6 -0
- package/dist/cjs/util/Lifecycle.d.ts +97 -0
- package/dist/cjs/util/Lifecycle.d.ts.map +1 -0
- package/dist/cjs/util/Lifecycle.js +89 -0
- package/dist/cjs/util/Lifecycle.js.map +6 -0
- package/dist/cjs/util/Multiplex.d.ts +14 -0
- package/dist/cjs/util/Multiplex.d.ts.map +1 -0
- package/dist/cjs/util/Multiplex.js +22 -0
- package/dist/cjs/util/Multiplex.js.map +6 -0
- package/dist/cjs/util/Mutex.d.ts +34 -0
- package/dist/cjs/util/Mutex.d.ts.map +1 -0
- package/dist/cjs/util/Mutex.js +105 -0
- package/dist/cjs/util/Mutex.js.map +6 -0
- package/dist/cjs/util/NamedHandler.d.ts +21 -0
- package/dist/cjs/util/NamedHandler.d.ts.map +1 -0
- package/dist/cjs/util/NamedHandler.js +54 -0
- package/dist/cjs/util/NamedHandler.js.map +6 -0
- package/dist/cjs/util/Number.d.ts +37 -0
- package/dist/cjs/util/Number.d.ts.map +1 -0
- package/dist/cjs/util/Number.js +97 -0
- package/dist/cjs/util/Number.js.map +6 -0
- package/dist/cjs/util/Observable.d.ts +197 -0
- package/dist/cjs/util/Observable.d.ts.map +1 -0
- package/dist/cjs/util/Observable.js +340 -0
- package/dist/cjs/util/Observable.js.map +6 -0
- package/dist/cjs/util/PromiseQueue.d.ts +25 -0
- package/dist/cjs/util/PromiseQueue.d.ts.map +1 -0
- package/dist/cjs/util/PromiseQueue.js +107 -0
- package/dist/cjs/util/PromiseQueue.js.map +6 -0
- package/dist/cjs/util/Promises.d.ts +68 -0
- package/dist/cjs/util/Promises.d.ts.map +1 -0
- package/dist/cjs/util/Promises.js +199 -0
- package/dist/cjs/util/Promises.js.map +6 -0
- package/dist/cjs/util/Set.d.ts +60 -0
- package/dist/cjs/util/Set.d.ts.map +1 -0
- package/dist/cjs/util/Set.js +145 -0
- package/dist/cjs/util/Set.js.map +6 -0
- package/dist/cjs/util/Singleton.d.ts +7 -0
- package/dist/cjs/util/Singleton.d.ts.map +1 -0
- package/dist/cjs/util/Singleton.js +36 -0
- package/dist/cjs/util/Singleton.js.map +6 -0
- package/dist/cjs/util/Stream.d.ts +16 -0
- package/dist/cjs/util/Stream.d.ts.map +1 -0
- package/dist/cjs/util/Stream.js +38 -0
- package/dist/cjs/util/Stream.js.map +6 -0
- package/dist/cjs/util/String.d.ts +39 -0
- package/dist/cjs/util/String.d.ts.map +1 -0
- package/dist/cjs/util/String.js +208 -0
- package/dist/cjs/util/String.js.map +6 -0
- package/dist/cjs/util/Type.d.ts +84 -0
- package/dist/cjs/util/Type.d.ts.map +1 -0
- package/dist/cjs/util/Type.js +52 -0
- package/dist/cjs/util/Type.js.map +6 -0
- package/dist/cjs/util/index.d.ts +30 -0
- package/dist/cjs/util/index.d.ts.map +1 -0
- package/dist/cjs/util/index.js +47 -0
- package/dist/cjs/util/index.js.map +6 -0
- package/dist/esm/MatterError.d.ts +95 -0
- package/dist/esm/MatterError.d.ts.map +1 -0
- package/dist/esm/MatterError.js +157 -0
- package/dist/esm/MatterError.js.map +6 -0
- package/dist/esm/codec/Base64Codec.d.ts +23 -0
- package/dist/esm/codec/Base64Codec.d.ts.map +1 -0
- package/dist/esm/codec/Base64Codec.js +114 -0
- package/dist/esm/codec/Base64Codec.js.map +6 -0
- package/dist/esm/codec/DerCodec.d.ts +83 -0
- package/dist/esm/codec/DerCodec.d.ts.map +1 -0
- package/dist/esm/codec/DerCodec.js +266 -0
- package/dist/esm/codec/DerCodec.js.map +6 -0
- package/dist/esm/codec/DerTypes.d.ts +73 -0
- package/dist/esm/codec/DerTypes.d.ts.map +1 -0
- package/dist/esm/codec/DerTypes.js +122 -0
- package/dist/esm/codec/DerTypes.js.map +6 -0
- package/dist/esm/codec/DnsCodec.d.ts +86 -0
- package/dist/esm/codec/DnsCodec.d.ts.map +1 -0
- package/dist/esm/codec/DnsCodec.js +335 -0
- package/dist/esm/codec/DnsCodec.js.map +6 -0
- package/dist/esm/codec/index.d.ts +10 -0
- package/dist/esm/codec/index.d.ts.map +1 -0
- package/dist/esm/codec/index.js +10 -0
- package/dist/esm/codec/index.js.map +6 -0
- package/dist/esm/crypto/Crypto.d.ts +169 -0
- package/dist/esm/crypto/Crypto.d.ts.map +1 -0
- package/dist/esm/crypto/Crypto.js +73 -0
- package/dist/esm/crypto/Crypto.js.map +6 -0
- package/dist/esm/crypto/CryptoConstants.d.ts +19 -0
- package/dist/esm/crypto/CryptoConstants.d.ts.map +1 -0
- package/dist/esm/crypto/CryptoConstants.js +28 -0
- package/dist/esm/crypto/CryptoConstants.js.map +6 -0
- package/dist/esm/crypto/Key.d.ts +171 -0
- package/dist/esm/crypto/Key.d.ts.map +1 -0
- package/dist/esm/crypto/Key.js +336 -0
- package/dist/esm/crypto/Key.js.map +6 -0
- package/dist/esm/crypto/Spake2p.d.ts +40 -0
- package/dist/esm/crypto/Spake2p.d.ts.map +1 -0
- package/dist/esm/crypto/Spake2p.js +108 -0
- package/dist/esm/crypto/Spake2p.js.map +6 -0
- package/dist/esm/crypto/index.d.ts +10 -0
- package/dist/esm/crypto/index.d.ts.map +1 -0
- package/dist/esm/crypto/index.js +10 -0
- package/dist/esm/crypto/index.js.map +6 -0
- package/dist/esm/environment/Environment.d.ts +96 -0
- package/dist/esm/environment/Environment.d.ts.map +1 -0
- package/dist/esm/environment/Environment.js +179 -0
- package/dist/esm/environment/Environment.js.map +6 -0
- package/dist/esm/environment/Environmental.d.ts +52 -0
- package/dist/esm/environment/Environmental.d.ts.map +1 -0
- package/dist/esm/environment/Environmental.js +13 -0
- package/dist/esm/environment/Environmental.js.map +6 -0
- package/dist/esm/environment/RuntimeService.d.ts +107 -0
- package/dist/esm/environment/RuntimeService.d.ts.map +1 -0
- package/dist/esm/environment/RuntimeService.js +202 -0
- package/dist/esm/environment/RuntimeService.js.map +6 -0
- package/dist/esm/environment/VariableService.d.ts +58 -0
- package/dist/esm/environment/VariableService.d.ts.map +1 -0
- package/dist/esm/environment/VariableService.js +237 -0
- package/dist/esm/environment/VariableService.js.map +6 -0
- package/dist/esm/environment/index.d.ts +10 -0
- package/dist/esm/environment/index.d.ts.map +1 -0
- package/dist/esm/environment/index.js +10 -0
- package/dist/esm/environment/index.js.map +6 -0
- package/dist/esm/index.d.ts +17 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +17 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/log/Diagnostic.d.ts +140 -0
- package/dist/esm/log/Diagnostic.d.ts.map +1 -0
- package/dist/esm/log/Diagnostic.js +277 -0
- package/dist/esm/log/Diagnostic.js.map +6 -0
- package/dist/esm/log/DiagnosticSource.d.ts +16 -0
- package/dist/esm/log/DiagnosticSource.d.ts.map +1 -0
- package/dist/esm/log/DiagnosticSource.js +25 -0
- package/dist/esm/log/DiagnosticSource.js.map +6 -0
- package/dist/esm/log/LogFormat.d.ts +33 -0
- package/dist/esm/log/LogFormat.d.ts.map +1 -0
- package/dist/esm/log/LogFormat.js +483 -0
- package/dist/esm/log/LogFormat.js.map +6 -0
- package/dist/esm/log/LogLevel.d.ts +18 -0
- package/dist/esm/log/LogLevel.d.ts.map +1 -0
- package/dist/esm/log/LogLevel.js +37 -0
- package/dist/esm/log/LogLevel.js.map +6 -0
- package/dist/esm/log/Logger.d.ts +220 -0
- package/dist/esm/log/Logger.d.ts.map +1 -0
- package/dist/esm/log/Logger.js +381 -0
- package/dist/esm/log/Logger.js.map +6 -0
- package/dist/esm/log/index.d.ts +11 -0
- package/dist/esm/log/index.d.ts.map +1 -0
- package/dist/esm/log/index.js +11 -0
- package/dist/esm/log/index.js.map +6 -0
- package/dist/esm/math/ReedSolomon.d.ts +11 -0
- package/dist/esm/math/ReedSolomon.d.ts.map +1 -0
- package/dist/esm/math/ReedSolomon.js +89 -0
- package/dist/esm/math/ReedSolomon.js.map +6 -0
- package/dist/esm/math/Verhoeff.d.ts +17 -0
- package/dist/esm/math/Verhoeff.d.ts.map +1 -0
- package/dist/esm/math/Verhoeff.js +44 -0
- package/dist/esm/math/Verhoeff.js.map +6 -0
- package/dist/esm/math/index.d.ts +8 -0
- package/dist/esm/math/index.d.ts.map +1 -0
- package/dist/esm/math/index.js +8 -0
- package/dist/esm/math/index.js.map +6 -0
- package/dist/esm/net/Channel.d.ts +24 -0
- package/dist/esm/net/Channel.d.ts.map +1 -0
- package/dist/esm/net/Channel.js +15 -0
- package/dist/esm/net/Channel.js.map +6 -0
- package/dist/esm/net/NetInterface.d.ts +24 -0
- package/dist/esm/net/NetInterface.d.ts.map +1 -0
- package/dist/esm/net/NetInterface.js +22 -0
- package/dist/esm/net/NetInterface.js.map +6 -0
- package/dist/esm/net/Network.d.ts +54 -0
- package/dist/esm/net/Network.d.ts.map +1 -0
- package/dist/esm/net/Network.js +30 -0
- package/dist/esm/net/Network.js.map +6 -0
- package/dist/esm/net/ServerAddress.d.ts +17 -0
- package/dist/esm/net/ServerAddress.d.ts.map +1 -0
- package/dist/esm/net/ServerAddress.js +12 -0
- package/dist/esm/net/ServerAddress.js.map +6 -0
- package/dist/esm/net/TransportInterface.d.ts +40 -0
- package/dist/esm/net/TransportInterface.d.ts.map +1 -0
- package/dist/esm/net/TransportInterface.js +35 -0
- package/dist/esm/net/TransportInterface.js.map +6 -0
- package/dist/esm/net/UdpChannel.d.ts +25 -0
- package/dist/esm/net/UdpChannel.d.ts.map +1 -0
- package/dist/esm/net/UdpChannel.js +10 -0
- package/dist/esm/net/UdpChannel.js.map +6 -0
- package/dist/esm/net/UdpInterface.d.ts +35 -0
- package/dist/esm/net/UdpInterface.d.ts.map +1 -0
- package/dist/esm/net/UdpInterface.js +62 -0
- package/dist/esm/net/UdpInterface.js.map +6 -0
- package/dist/esm/net/UdpMulticastServer.d.ts +30 -0
- package/dist/esm/net/UdpMulticastServer.d.ts.map +1 -0
- package/dist/esm/net/UdpMulticastServer.js +113 -0
- package/dist/esm/net/UdpMulticastServer.js.map +6 -0
- package/dist/esm/net/index.d.ts +17 -0
- package/dist/esm/net/index.d.ts.map +1 -0
- package/dist/esm/net/index.js +17 -0
- package/dist/esm/net/index.js.map +6 -0
- package/dist/esm/net/mock/MockNetwork.d.ts +19 -0
- package/dist/esm/net/mock/MockNetwork.d.ts.map +1 -0
- package/dist/esm/net/mock/MockNetwork.js +36 -0
- package/dist/esm/net/mock/MockNetwork.js.map +6 -0
- package/dist/esm/net/mock/MockUdpChannel.d.ts +27 -0
- package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -0
- package/dist/esm/net/mock/MockUdpChannel.js +56 -0
- package/dist/esm/net/mock/MockUdpChannel.js.map +6 -0
- package/dist/esm/net/mock/NetworkSimulator.d.ts +18 -0
- package/dist/esm/net/mock/NetworkSimulator.d.ts.map +1 -0
- package/dist/esm/net/mock/NetworkSimulator.js +53 -0
- package/dist/esm/net/mock/NetworkSimulator.js.map +6 -0
- package/dist/esm/package.json +6 -0
- package/dist/esm/polyfills/disposable.d.ts +7 -0
- package/dist/esm/polyfills/disposable.d.ts.map +1 -0
- package/dist/esm/polyfills/disposable.js +18 -0
- package/dist/esm/polyfills/disposable.js.map +6 -0
- package/dist/esm/polyfills/index.d.ts +7 -0
- package/dist/esm/polyfills/index.d.ts.map +1 -0
- package/dist/esm/polyfills/index.js +7 -0
- package/dist/esm/polyfills/index.js.map +6 -0
- package/dist/esm/storage/Storage.d.ts +54 -0
- package/dist/esm/storage/Storage.d.ts.map +1 -0
- package/dist/esm/storage/Storage.js +18 -0
- package/dist/esm/storage/Storage.js.map +6 -0
- package/dist/esm/storage/StorageBackendMemory.d.ts +27 -0
- package/dist/esm/storage/StorageBackendMemory.d.ts.map +1 -0
- package/dist/esm/storage/StorageBackendMemory.js +111 -0
- package/dist/esm/storage/StorageBackendMemory.js.map +6 -0
- package/dist/esm/storage/StorageContext.d.ts +26 -0
- package/dist/esm/storage/StorageContext.d.ts.map +1 -0
- package/dist/esm/storage/StorageContext.js +97 -0
- package/dist/esm/storage/StorageContext.js.map +6 -0
- package/dist/esm/storage/StorageManager.d.ts +17 -0
- package/dist/esm/storage/StorageManager.d.ts.map +1 -0
- package/dist/esm/storage/StorageManager.js +39 -0
- package/dist/esm/storage/StorageManager.js.map +6 -0
- package/dist/esm/storage/StorageService.d.ts +35 -0
- package/dist/esm/storage/StorageService.d.ts.map +1 -0
- package/dist/esm/storage/StorageService.js +62 -0
- package/dist/esm/storage/StorageService.js.map +6 -0
- package/dist/esm/storage/StringifyTools.d.ts +16 -0
- package/dist/esm/storage/StringifyTools.d.ts.map +1 -0
- package/dist/esm/storage/StringifyTools.js +85 -0
- package/dist/esm/storage/StringifyTools.js.map +6 -0
- package/dist/esm/storage/index.d.ts +12 -0
- package/dist/esm/storage/index.d.ts.map +1 -0
- package/dist/esm/storage/index.js +12 -0
- package/dist/esm/storage/index.js.map +6 -0
- package/dist/esm/time/Time.d.ts +66 -0
- package/dist/esm/time/Time.d.ts.map +1 -0
- package/dist/esm/time/Time.js +117 -0
- package/dist/esm/time/Time.js.map +6 -0
- package/dist/esm/time/index.d.ts +7 -0
- package/dist/esm/time/index.d.ts.map +1 -0
- package/dist/esm/time/index.js +7 -0
- package/dist/esm/time/index.js.map +6 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/util/Array.d.ts +12 -0
- package/dist/esm/util/Array.d.ts.map +1 -0
- package/dist/esm/util/Array.js +8 -0
- package/dist/esm/util/Array.js.map +6 -0
- package/dist/esm/util/Bytes.d.ts +23 -0
- package/dist/esm/util/Bytes.d.ts.map +1 -0
- package/dist/esm/util/Bytes.js +75 -0
- package/dist/esm/util/Bytes.js.map +6 -0
- package/dist/esm/util/Cache.d.ts +33 -0
- package/dist/esm/util/Cache.d.ts.map +1 -0
- package/dist/esm/util/Cache.js +94 -0
- package/dist/esm/util/Cache.js.map +6 -0
- package/dist/esm/util/Construction.d.ts +182 -0
- package/dist/esm/util/Construction.d.ts.map +1 -0
- package/dist/esm/util/Construction.js +397 -0
- package/dist/esm/util/Construction.js.map +6 -0
- package/dist/esm/util/DataReadQueue.d.ts +17 -0
- package/dist/esm/util/DataReadQueue.d.ts.map +1 -0
- package/dist/esm/util/DataReadQueue.js +56 -0
- package/dist/esm/util/DataReadQueue.js.map +6 -0
- package/dist/esm/util/DataReader.d.ts +32 -0
- package/dist/esm/util/DataReader.d.ts.map +1 -0
- package/dist/esm/util/DataReader.js +81 -0
- package/dist/esm/util/DataReader.js.map +6 -0
- package/dist/esm/util/DataWriter.d.ts +26 -0
- package/dist/esm/util/DataWriter.d.ts.map +1 -0
- package/dist/esm/util/DataWriter.js +94 -0
- package/dist/esm/util/DataWriter.js.map +6 -0
- package/dist/esm/util/DeepCopy.d.ts +12 -0
- package/dist/esm/util/DeepCopy.d.ts.map +1 -0
- package/dist/esm/util/DeepCopy.js +38 -0
- package/dist/esm/util/DeepCopy.js.map +6 -0
- package/dist/esm/util/DeepEqual.d.ts +7 -0
- package/dist/esm/util/DeepEqual.d.ts.map +1 -0
- package/dist/esm/util/DeepEqual.js +35 -0
- package/dist/esm/util/DeepEqual.js.map +6 -0
- package/dist/esm/util/Error.d.ts +12 -0
- package/dist/esm/util/Error.d.ts.map +1 -0
- package/dist/esm/util/Error.js +21 -0
- package/dist/esm/util/Error.js.map +6 -0
- package/dist/esm/util/GeneratedClass.d.ts +62 -0
- package/dist/esm/util/GeneratedClass.d.ts.map +1 -0
- package/dist/esm/util/GeneratedClass.js +97 -0
- package/dist/esm/util/GeneratedClass.js.map +6 -0
- package/dist/esm/util/Introspection.d.ts +38 -0
- package/dist/esm/util/Introspection.d.ts.map +1 -0
- package/dist/esm/util/Introspection.js +65 -0
- package/dist/esm/util/Introspection.js.map +6 -0
- package/dist/esm/util/Ip.d.ts +8 -0
- package/dist/esm/util/Ip.d.ts.map +1 -0
- package/dist/esm/util/Ip.js +70 -0
- package/dist/esm/util/Ip.js.map +6 -0
- package/dist/esm/util/Lifecycle.d.ts +97 -0
- package/dist/esm/util/Lifecycle.d.ts.map +1 -0
- package/dist/esm/util/Lifecycle.js +69 -0
- package/dist/esm/util/Lifecycle.js.map +6 -0
- package/dist/esm/util/Multiplex.d.ts +14 -0
- package/dist/esm/util/Multiplex.d.ts.map +1 -0
- package/dist/esm/util/Multiplex.js +6 -0
- package/dist/esm/util/Multiplex.js.map +6 -0
- package/dist/esm/util/Mutex.d.ts +34 -0
- package/dist/esm/util/Mutex.d.ts.map +1 -0
- package/dist/esm/util/Mutex.js +85 -0
- package/dist/esm/util/Mutex.js.map +6 -0
- package/dist/esm/util/NamedHandler.d.ts +21 -0
- package/dist/esm/util/NamedHandler.d.ts.map +1 -0
- package/dist/esm/util/NamedHandler.js +34 -0
- package/dist/esm/util/NamedHandler.js.map +6 -0
- package/dist/esm/util/Number.d.ts +37 -0
- package/dist/esm/util/Number.d.ts.map +1 -0
- package/dist/esm/util/Number.js +77 -0
- package/dist/esm/util/Number.js.map +6 -0
- package/dist/esm/util/Observable.d.ts +197 -0
- package/dist/esm/util/Observable.d.ts.map +1 -0
- package/dist/esm/util/Observable.js +320 -0
- package/dist/esm/util/Observable.js.map +6 -0
- package/dist/esm/util/PromiseQueue.d.ts +25 -0
- package/dist/esm/util/PromiseQueue.d.ts.map +1 -0
- package/dist/esm/util/PromiseQueue.js +87 -0
- package/dist/esm/util/PromiseQueue.js.map +6 -0
- package/dist/esm/util/Promises.d.ts +68 -0
- package/dist/esm/util/Promises.d.ts.map +1 -0
- package/dist/esm/util/Promises.js +179 -0
- package/dist/esm/util/Promises.js.map +6 -0
- package/dist/esm/util/Set.d.ts +60 -0
- package/dist/esm/util/Set.d.ts.map +1 -0
- package/dist/esm/util/Set.js +125 -0
- package/dist/esm/util/Set.js.map +6 -0
- package/dist/esm/util/Singleton.d.ts +7 -0
- package/dist/esm/util/Singleton.d.ts.map +1 -0
- package/dist/esm/util/Singleton.js +16 -0
- package/dist/esm/util/Singleton.js.map +6 -0
- package/dist/esm/util/Stream.d.ts +16 -0
- package/dist/esm/util/Stream.d.ts.map +1 -0
- package/dist/esm/util/Stream.js +18 -0
- package/dist/esm/util/Stream.js.map +6 -0
- package/dist/esm/util/String.d.ts +39 -0
- package/dist/esm/util/String.d.ts.map +1 -0
- package/dist/esm/util/String.js +188 -0
- package/dist/esm/util/String.js.map +6 -0
- package/dist/esm/util/Type.d.ts +84 -0
- package/dist/esm/util/Type.d.ts.map +1 -0
- package/dist/esm/util/Type.js +32 -0
- package/dist/esm/util/Type.js.map +6 -0
- package/dist/esm/util/index.d.ts +30 -0
- package/dist/esm/util/index.d.ts.map +1 -0
- package/dist/esm/util/index.js +30 -0
- package/dist/esm/util/index.js.map +6 -0
- package/package.json +76 -0
- package/src/MatterError.ts +205 -0
- package/src/codec/Base64Codec.ts +137 -0
- package/src/codec/DerCodec.ts +300 -0
- package/src/codec/DerTypes.ts +145 -0
- package/src/codec/DnsCodec.ts +393 -0
- package/src/codec/index.ts +10 -0
- package/src/crypto/Crypto.ts +136 -0
- package/src/crypto/CryptoConstants.ts +19 -0
- package/src/crypto/Key.ts +600 -0
- package/src/crypto/Spake2p.ts +128 -0
- package/src/crypto/index.ts +10 -0
- package/src/environment/Environment.ts +215 -0
- package/src/environment/Environmental.ts +60 -0
- package/src/environment/RuntimeService.ts +301 -0
- package/src/environment/VariableService.ts +308 -0
- package/src/environment/index.ts +10 -0
- package/src/index.ts +17 -0
- package/src/log/Diagnostic.ts +454 -0
- package/src/log/DiagnosticSource.ts +30 -0
- package/src/log/LogFormat.ts +646 -0
- package/src/log/LogLevel.ts +36 -0
- package/src/log/Logger.ts +474 -0
- package/src/log/index.ts +11 -0
- package/src/math/ReedSolomon.ts +100 -0
- package/src/math/Verhoeff.ts +47 -0
- package/src/math/index.ts +8 -0
- package/src/net/Channel.ts +30 -0
- package/src/net/NetInterface.ts +33 -0
- package/src/net/Network.ts +70 -0
- package/src/net/ServerAddress.ts +22 -0
- package/src/net/TransportInterface.ts +56 -0
- package/src/net/UdpChannel.ts +30 -0
- package/src/net/UdpInterface.ts +75 -0
- package/src/net/UdpMulticastServer.ts +138 -0
- package/src/net/index.ts +17 -0
- package/src/net/mock/MockNetwork.ts +42 -0
- package/src/net/mock/MockUdpChannel.ts +69 -0
- package/src/net/mock/NetworkSimulator.ts +63 -0
- package/src/polyfills/disposable.ts +24 -0
- package/src/polyfills/index.ts +7 -0
- package/src/storage/Storage.ts +61 -0
- package/src/storage/StorageBackendMemory.ts +131 -0
- package/src/storage/StorageContext.ts +111 -0
- package/src/storage/StorageManager.ts +39 -0
- package/src/storage/StorageService.ts +73 -0
- package/src/storage/StringifyTools.ts +107 -0
- package/src/storage/index.ts +12 -0
- package/src/time/Time.ts +179 -0
- package/src/time/index.ts +7 -0
- package/src/tsconfig.json +10 -0
- package/src/util/Array.ts +15 -0
- package/src/util/Bytes.ts +73 -0
- package/src/util/Cache.ts +111 -0
- package/src/util/Construction.ts +717 -0
- package/src/util/DataReadQueue.ts +55 -0
- package/src/util/DataReader.ts +100 -0
- package/src/util/DataWriter.ts +109 -0
- package/src/util/DeepCopy.ts +47 -0
- package/src/util/DeepEqual.ts +49 -0
- package/src/util/Error.ts +32 -0
- package/src/util/GeneratedClass.ts +204 -0
- package/src/util/Introspection.ts +93 -0
- package/src/util/Ip.ts +71 -0
- package/src/util/Lifecycle.ts +135 -0
- package/src/util/Multiplex.ts +14 -0
- package/src/util/Mutex.ts +100 -0
- package/src/util/NamedHandler.ts +52 -0
- package/src/util/Number.ts +71 -0
- package/src/util/Observable.ts +550 -0
- package/src/util/PromiseQueue.ts +102 -0
- package/src/util/Promises.ts +278 -0
- package/src/util/Set.ts +189 -0
- package/src/util/Singleton.ts +13 -0
- package/src/util/Stream.ts +19 -0
- package/src/util/String.ts +248 -0
- package/src/util/Type.ts +145 -0
- package/src/util/index.ts +30 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { DiagnosticSource } from "../log/DiagnosticSource.js";
|
|
7
|
+
import { Logger } from "../log/Logger.js";
|
|
8
|
+
import "../polyfills/disposable.js";
|
|
9
|
+
import { Time } from "../time/Time.js";
|
|
10
|
+
import { UnsupportedDependencyError } from "../util/Lifecycle.js";
|
|
11
|
+
import { Observable } from "../util/Observable.js";
|
|
12
|
+
import { Environmental } from "./Environmental.js";
|
|
13
|
+
import { RuntimeService } from "./RuntimeService.js";
|
|
14
|
+
import { VariableService } from "./VariableService.js";
|
|
15
|
+
const logger = Logger.get("Environment");
|
|
16
|
+
class Environment {
|
|
17
|
+
#services;
|
|
18
|
+
#name;
|
|
19
|
+
#parent;
|
|
20
|
+
#added = Observable();
|
|
21
|
+
#deleted = Observable();
|
|
22
|
+
#serviceEvents = /* @__PURE__ */ new Map();
|
|
23
|
+
constructor(name, parent) {
|
|
24
|
+
this.#name = name;
|
|
25
|
+
this.#parent = parent;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Determine if an environmental service is available.
|
|
29
|
+
*/
|
|
30
|
+
has(type) {
|
|
31
|
+
return this.#services?.get(type) !== void 0 || (this.#parent?.has(type) ?? false);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Access an environmental service.
|
|
35
|
+
*/
|
|
36
|
+
get(type) {
|
|
37
|
+
let instance = this.#services?.get(type) ?? this.#parent?.get(type);
|
|
38
|
+
if (instance) {
|
|
39
|
+
return instance;
|
|
40
|
+
}
|
|
41
|
+
if (type[Environmental.create]) {
|
|
42
|
+
this.set(type, instance = type[Environmental.create](this));
|
|
43
|
+
return instance;
|
|
44
|
+
}
|
|
45
|
+
throw new UnsupportedDependencyError(`Required dependency ${type.name}`, "is not available");
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Remove an environmental service.
|
|
49
|
+
*
|
|
50
|
+
* @param type the class of the service to remove
|
|
51
|
+
* @param instance optional instance expected, if existing instance does not match it is not deleted
|
|
52
|
+
*/
|
|
53
|
+
delete(type, instance) {
|
|
54
|
+
if (instance !== void 0 && this.#services?.get(type) !== instance) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
this.#services?.delete(type);
|
|
58
|
+
this.#parent?.delete(type);
|
|
59
|
+
this.#deleted.emit(type, instance);
|
|
60
|
+
const serviceEvents = this.#serviceEvents.get(type);
|
|
61
|
+
if (serviceEvents) {
|
|
62
|
+
serviceEvents.deleted.emit(instance);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Access an environmental service, waiting for any async initialization to complete.
|
|
67
|
+
*/
|
|
68
|
+
async load(type) {
|
|
69
|
+
const instance = this.get(type);
|
|
70
|
+
await instance.construction;
|
|
71
|
+
return instance;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Install a preinitialized version of an environmental service.
|
|
75
|
+
*/
|
|
76
|
+
set(type, instance) {
|
|
77
|
+
if (!this.#services) {
|
|
78
|
+
this.#services = /* @__PURE__ */ new Map();
|
|
79
|
+
}
|
|
80
|
+
this.#services.set(type, instance);
|
|
81
|
+
this.#added.emit(type, instance);
|
|
82
|
+
const serviceEvents = this.#serviceEvents.get(type);
|
|
83
|
+
if (serviceEvents) {
|
|
84
|
+
serviceEvents.added.emit(instance);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Name of the environment.
|
|
89
|
+
*/
|
|
90
|
+
get name() {
|
|
91
|
+
return this.#name;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Emits on service add.
|
|
95
|
+
*
|
|
96
|
+
* Currently only emits for services owned directly by this environment.
|
|
97
|
+
*/
|
|
98
|
+
get added() {
|
|
99
|
+
return this.#added;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Emits on service delete.
|
|
103
|
+
*
|
|
104
|
+
* Currently only emits for services owned directly by this environment.
|
|
105
|
+
*/
|
|
106
|
+
get deleted() {
|
|
107
|
+
return this.#deleted;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Obtain an object with events that trigger when a specific service is added or deleted.
|
|
111
|
+
*
|
|
112
|
+
* This is a more convenient way to observe a specific service than {@link added} and {@link deleted}.
|
|
113
|
+
*/
|
|
114
|
+
eventsFor(type) {
|
|
115
|
+
let events = this.#serviceEvents.get(type);
|
|
116
|
+
if (events === void 0) {
|
|
117
|
+
events = {
|
|
118
|
+
added: new Observable(),
|
|
119
|
+
deleted: new Observable()
|
|
120
|
+
};
|
|
121
|
+
this.#serviceEvents.set(type, events);
|
|
122
|
+
}
|
|
123
|
+
return events;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* The default environment.
|
|
127
|
+
*
|
|
128
|
+
* Currently only emits for services owned directly by this environment.
|
|
129
|
+
*/
|
|
130
|
+
static get default() {
|
|
131
|
+
return global;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Set the default environment.
|
|
135
|
+
*/
|
|
136
|
+
static set default(env) {
|
|
137
|
+
global = env;
|
|
138
|
+
env.vars.use(() => {
|
|
139
|
+
Logger.level = env.vars.get("log.level", Logger.level);
|
|
140
|
+
Logger.format = env.vars.get("log.format", Logger.format);
|
|
141
|
+
const stackLimit = global.vars.number("log.stack.limit");
|
|
142
|
+
if (stackLimit !== void 0) {
|
|
143
|
+
Error.stackTraceLimit = stackLimit;
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Shortcut for accessing {@link VariableService.vars}.
|
|
149
|
+
*/
|
|
150
|
+
get vars() {
|
|
151
|
+
return this.get(VariableService);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Shortcut for accessing {@link RuntimeService}.
|
|
155
|
+
*/
|
|
156
|
+
get runtime() {
|
|
157
|
+
return this.get(RuntimeService);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Display tasks that supply diagnostics.
|
|
161
|
+
*/
|
|
162
|
+
diagnose() {
|
|
163
|
+
Time.getTimer("Diagnostics", 0, () => {
|
|
164
|
+
try {
|
|
165
|
+
logger.notice("Diagnostics follow", DiagnosticSource);
|
|
166
|
+
} catch (e) {
|
|
167
|
+
logger.error(`Unhandled error gathering diagnostics:`, e);
|
|
168
|
+
}
|
|
169
|
+
}).start();
|
|
170
|
+
}
|
|
171
|
+
loadVariables() {
|
|
172
|
+
return {};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
let global = new Environment("default");
|
|
176
|
+
export {
|
|
177
|
+
Environment
|
|
178
|
+
};
|
|
179
|
+
//# sourceMappingURL=Environment.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/environment/Environment.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Diagnostic } from "../log/Diagnostic.js";
|
|
7
|
+
import { Observable } from "../util/Observable.js";
|
|
8
|
+
import type { Environment } from "./Environment.js";
|
|
9
|
+
export declare namespace Environmental {
|
|
10
|
+
const create: unique symbol;
|
|
11
|
+
/**
|
|
12
|
+
* An "environmental service" is an object available via {@link Environment.get}.
|
|
13
|
+
*
|
|
14
|
+
* Any object may be an environmental service. This methods in this interface are optional.
|
|
15
|
+
*/
|
|
16
|
+
interface Service {
|
|
17
|
+
/**
|
|
18
|
+
* Asynchronous construction, respected by {@link Environment.load}.
|
|
19
|
+
*/
|
|
20
|
+
construction?: Promise<any>;
|
|
21
|
+
/**
|
|
22
|
+
* Asynchronous destruction. Invoked by the environment when it is destroyed.
|
|
23
|
+
*/
|
|
24
|
+
[Symbol.asyncDispose]?: () => Promise<any>;
|
|
25
|
+
/**
|
|
26
|
+
* Standard diagnostic presentation.
|
|
27
|
+
*/
|
|
28
|
+
[Diagnostic.presentation]?: Diagnostic.Presentation;
|
|
29
|
+
/**
|
|
30
|
+
* Standard diagnostic value.
|
|
31
|
+
*/
|
|
32
|
+
[Diagnostic.value]?: unknown;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A factory for a {@link Service}. Any constructor may be a service factory.
|
|
36
|
+
*/
|
|
37
|
+
interface Factory<T extends Service> {
|
|
38
|
+
new (...args: any[]): T;
|
|
39
|
+
/**
|
|
40
|
+
* The environment will create the service automatically if the factory supports {@link create}.
|
|
41
|
+
*/
|
|
42
|
+
[create]?: (environment: Environment) => T;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Events related to service lifecycle.
|
|
46
|
+
*/
|
|
47
|
+
interface ServiceEvents<T extends abstract new (...args: any[]) => T> {
|
|
48
|
+
added: Observable<[instance: InstanceType<T>]>;
|
|
49
|
+
deleted: Observable<[instance: InstanceType<T>]>;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=Environmental.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Environmental.d.ts","sourceRoot":"","sources":["../../../src/environment/Environmental.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,yBAAiB,aAAa,CAAC;IACpB,MAAM,MAAM,eAAmB,CAAC;IAEvC;;;;OAIG;IACH,UAAiB,OAAO;QACpB;;WAEG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAE5B;;WAEG;QACH,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;QAE3C;;WAEG;QACH,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC;QAEpD;;WAEG;QACH,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;KAChC;IAED;;OAEG;IACH,UAAiB,OAAO,CAAC,CAAC,SAAS,OAAO;QACtC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAExB;;WAEG;QACH,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,CAAC,CAAC;KAC9C;IAED;;OAEG;IACH,UAAiB,aAAa,CAAC,CAAC,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC;QACvE,KAAK,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACpD;CACJ"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
var Environmental;
|
|
7
|
+
((Environmental2) => {
|
|
8
|
+
Environmental2.create = Symbol("create");
|
|
9
|
+
})(Environmental || (Environmental = {}));
|
|
10
|
+
export {
|
|
11
|
+
Environmental
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=Environmental.js.map
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Diagnostic } from "../log/Diagnostic.js";
|
|
7
|
+
import { Construction } from "../util/Construction.js";
|
|
8
|
+
import { Cancellable, Destructable } from "../util/Lifecycle.js";
|
|
9
|
+
import { Multiplex } from "../util/Multiplex.js";
|
|
10
|
+
import { Observable } from "../util/Observable.js";
|
|
11
|
+
import type { Environment } from "./Environment.js";
|
|
12
|
+
import { Environmental } from "./Environmental.js";
|
|
13
|
+
/**
|
|
14
|
+
* Handles lifecycle management of other components.
|
|
15
|
+
*/
|
|
16
|
+
export declare class RuntimeService implements Multiplex {
|
|
17
|
+
#private;
|
|
18
|
+
constructor(environment: Environment);
|
|
19
|
+
/**
|
|
20
|
+
* Add a {@link Worker}.
|
|
21
|
+
*
|
|
22
|
+
* The runtime considers itself "active" if there are one or more workers installed.
|
|
23
|
+
*
|
|
24
|
+
* A worker must either be {@link PromiseLike} or {@link Constructable} for the runtime to detect completion. On
|
|
25
|
+
* completion the worker is removed and destroyed if the worker is {@link Destructable}.
|
|
26
|
+
*
|
|
27
|
+
* Once added, the {@link worker} is owned by the RuntimeService until closed, resolved or removed via
|
|
28
|
+
* {@link delete}.
|
|
29
|
+
*/
|
|
30
|
+
add(worker: RuntimeService.Worker | void): void;
|
|
31
|
+
/**
|
|
32
|
+
* Remove a worker.
|
|
33
|
+
*/
|
|
34
|
+
delete(worker: RuntimeService.Worker): void;
|
|
35
|
+
/**
|
|
36
|
+
* Emits when a worker is added when previously there were none.
|
|
37
|
+
*/
|
|
38
|
+
get started(): Observable<[], void>;
|
|
39
|
+
/**
|
|
40
|
+
* Emits when the last worker departs.
|
|
41
|
+
*/
|
|
42
|
+
get stopped(): Observable<[], void>;
|
|
43
|
+
/**
|
|
44
|
+
* Emits when a worker experiences an unhandled error.
|
|
45
|
+
*/
|
|
46
|
+
get crashed(): Observable<[cause: any], void>;
|
|
47
|
+
static [Environmental.create](environment: Environment): RuntimeService;
|
|
48
|
+
/**
|
|
49
|
+
* Cancel execution.
|
|
50
|
+
*
|
|
51
|
+
* On cancel the runtime destroys all workers.
|
|
52
|
+
*/
|
|
53
|
+
cancel(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Resolves when no workers are active.
|
|
56
|
+
*/
|
|
57
|
+
get inactive(): Promise<void>;
|
|
58
|
+
close(): Promise<void>;
|
|
59
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
60
|
+
get [Diagnostic.value](): unknown[];
|
|
61
|
+
}
|
|
62
|
+
export declare namespace RuntimeService {
|
|
63
|
+
const label: unique symbol;
|
|
64
|
+
/**
|
|
65
|
+
* The runtime tracks individual discrete tasks as "workers".
|
|
66
|
+
*
|
|
67
|
+
* The state of the runtime is dependent on installed workers. Any JS object may be a worker but the runtime's
|
|
68
|
+
* interaction with workers varies as documented here.
|
|
69
|
+
*
|
|
70
|
+
* If a worker is a {@link PromiseLike} the runtime will delete and/or destroy it on completion.
|
|
71
|
+
*/
|
|
72
|
+
interface Worker extends Partial<PromiseLike<any>>, Partial<Cancellable>, Partial<Destructable> {
|
|
73
|
+
/**
|
|
74
|
+
* If the worker supports {@link Construction}, the runtime will monitor the worker's lifecycle:
|
|
75
|
+
*
|
|
76
|
+
* - If the worker crashed (e.g. experiences an error during initialization) the runtime will cancel all
|
|
77
|
+
* workers and exit
|
|
78
|
+
*
|
|
79
|
+
* - If the worker is destroyed the runtime deletes it from the set of known workers
|
|
80
|
+
*/
|
|
81
|
+
construction?: Construction<any>;
|
|
82
|
+
/**
|
|
83
|
+
* If the worker supports {@link Symbol.asyncDispose} the runtime will invoke when the worker is no longer
|
|
84
|
+
* needed. This happens if:
|
|
85
|
+
*
|
|
86
|
+
* - The worker is a {@link PromiseLike} that resolves
|
|
87
|
+
*
|
|
88
|
+
* - The worker's {@link construction} status changed as noted above
|
|
89
|
+
*
|
|
90
|
+
* - The runtime is canceled via {@link RuntimeService.cancel}
|
|
91
|
+
*/
|
|
92
|
+
[Symbol.asyncDispose]?: () => void | Promise<void>;
|
|
93
|
+
/**
|
|
94
|
+
* Workers may implement {@link Symbol.dispose} to handle disposal. Works the same as the async equivalent.
|
|
95
|
+
*/
|
|
96
|
+
[Symbol.dispose]?: () => void;
|
|
97
|
+
/**
|
|
98
|
+
* If label is present, it will be presented in diagnostics. This takes precedence over [Diagnostic.value].
|
|
99
|
+
*/
|
|
100
|
+
[label]?: unknown;
|
|
101
|
+
/**
|
|
102
|
+
* In diagnostics workers render using toString() unless they provide explicit diagnostics.
|
|
103
|
+
*/
|
|
104
|
+
[Diagnostic.value]?: unknown;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=RuntimeService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuntimeService.d.ts","sourceRoot":"","sources":["../../../src/environment/RuntimeService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAsB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAa,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;GAEG;AACH,qBAAa,cAAe,YAAW,SAAS;;gBAShC,WAAW,EAAE,WAAW;IAKpC;;;;;;;;;;OAUG;IACH,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,GAAG,IAAI;IA4CxC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM;IAsBpC;;OAEG;IACH,IAAI,OAAO,yBAEV;IAED;;OAEG;IACH,IAAI,OAAO,yBAEV;IAED;;OAEG;IACH,IAAI,OAAO,mCAEV;IAED,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW;IAItD;;;;OAIG;IACH,MAAM;IAeN;;OAEG;IACH,IAAI,QAAQ,kBAcX;IAEK,KAAK;IAMX,CAAC,MAAM,CAAC,YAAY,CAAC;IAIrB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,cAgBrB;CA4CJ;AAED,yBAAiB,cAAc,CAAC;IACrB,MAAM,KAAK,eAAkB,CAAC;IAErC;;;;;;;OAOG;IACH,UAAiB,MAAO,SAAQ,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;QAClG;;;;;;;WAOG;QACH,YAAY,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAEjC;;;;;;;;;WASG;QACH,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnD;;WAEG;QACH,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC;QAE9B;;WAEG;QACH,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;QAElB;;WAEG;QACH,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;KAChC;CACJ"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Diagnostic } from "../log/Diagnostic.js";
|
|
7
|
+
import { DiagnosticSource } from "../log/DiagnosticSource.js";
|
|
8
|
+
import { Logger } from "../log/Logger.js";
|
|
9
|
+
import { Lifecycle } from "../util/Lifecycle.js";
|
|
10
|
+
import { Observable } from "../util/Observable.js";
|
|
11
|
+
import { Environmental } from "./Environmental.js";
|
|
12
|
+
const logger = Logger.get("Runtime");
|
|
13
|
+
class RuntimeService {
|
|
14
|
+
#workers = /* @__PURE__ */ new Set();
|
|
15
|
+
#cancelled = /* @__PURE__ */ new Set();
|
|
16
|
+
#workerDeleted = Observable();
|
|
17
|
+
#canceled = false;
|
|
18
|
+
#started = Observable();
|
|
19
|
+
#stopped = Observable();
|
|
20
|
+
#crashed = Observable();
|
|
21
|
+
constructor(environment) {
|
|
22
|
+
environment.set(RuntimeService, this);
|
|
23
|
+
DiagnosticSource.add(this);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Add a {@link Worker}.
|
|
27
|
+
*
|
|
28
|
+
* The runtime considers itself "active" if there are one or more workers installed.
|
|
29
|
+
*
|
|
30
|
+
* A worker must either be {@link PromiseLike} or {@link Constructable} for the runtime to detect completion. On
|
|
31
|
+
* completion the worker is removed and destroyed if the worker is {@link Destructable}.
|
|
32
|
+
*
|
|
33
|
+
* Once added, the {@link worker} is owned by the RuntimeService until closed, resolved or removed via
|
|
34
|
+
* {@link delete}.
|
|
35
|
+
*/
|
|
36
|
+
add(worker) {
|
|
37
|
+
if (!worker) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (this.#workers.has(worker)) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
this.#workers.add(worker);
|
|
44
|
+
if (this.#workers.size === 1) {
|
|
45
|
+
this.#started.emit();
|
|
46
|
+
}
|
|
47
|
+
if (worker.then) {
|
|
48
|
+
Promise.resolve(worker).catch((error) => this.#crash(error)).finally(() => this.delete(worker));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (worker.construction?.change) {
|
|
52
|
+
worker.construction.change.on((status) => {
|
|
53
|
+
switch (status) {
|
|
54
|
+
case Lifecycle.Status.Crashed:
|
|
55
|
+
this.#crash();
|
|
56
|
+
break;
|
|
57
|
+
case Lifecycle.Status.Destroyed:
|
|
58
|
+
this.delete(worker);
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
} else if (worker.then) {
|
|
63
|
+
if (worker.then) {
|
|
64
|
+
Promise.resolve(worker).catch((error) => this.#crash(error)).finally(() => this.delete(worker));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Remove a worker.
|
|
70
|
+
*/
|
|
71
|
+
delete(worker) {
|
|
72
|
+
if (!this.#workers.has(worker)) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
this.#workers.delete(worker);
|
|
76
|
+
this.#cancelled.delete(worker);
|
|
77
|
+
this.#workerDeleted.emit();
|
|
78
|
+
if (this.#workers.size) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
this.cancel();
|
|
82
|
+
void this.inactive.finally(() => this.#stopped.emit());
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Emits when a worker is added when previously there were none.
|
|
86
|
+
*/
|
|
87
|
+
get started() {
|
|
88
|
+
return this.#started;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Emits when the last worker departs.
|
|
92
|
+
*/
|
|
93
|
+
get stopped() {
|
|
94
|
+
return this.#stopped;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Emits when a worker experiences an unhandled error.
|
|
98
|
+
*/
|
|
99
|
+
get crashed() {
|
|
100
|
+
return this.#crashed;
|
|
101
|
+
}
|
|
102
|
+
static [Environmental.create](environment) {
|
|
103
|
+
return new this(environment);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Cancel execution.
|
|
107
|
+
*
|
|
108
|
+
* On cancel the runtime destroys all workers.
|
|
109
|
+
*/
|
|
110
|
+
cancel() {
|
|
111
|
+
if (this.#canceled) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
this.#canceled = true;
|
|
115
|
+
logger.notice("Shutting down");
|
|
116
|
+
for (const worker of this.#workers) {
|
|
117
|
+
const disposal = this.#cancelWorker(worker);
|
|
118
|
+
if (disposal) {
|
|
119
|
+
this.add(disposal);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Resolves when no workers are active.
|
|
125
|
+
*/
|
|
126
|
+
get inactive() {
|
|
127
|
+
if (!this.#workers.size) {
|
|
128
|
+
return Promise.resolve();
|
|
129
|
+
}
|
|
130
|
+
return new Promise((resolve) => {
|
|
131
|
+
const listener = () => {
|
|
132
|
+
if (!this.#workers.size) {
|
|
133
|
+
this.#workerDeleted.off(listener);
|
|
134
|
+
resolve();
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
this.#workerDeleted.on(listener);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
async close() {
|
|
141
|
+
this.cancel();
|
|
142
|
+
await this.inactive;
|
|
143
|
+
DiagnosticSource.delete(this);
|
|
144
|
+
}
|
|
145
|
+
[Symbol.asyncDispose]() {
|
|
146
|
+
return this.close();
|
|
147
|
+
}
|
|
148
|
+
get [Diagnostic.value]() {
|
|
149
|
+
return Diagnostic.node("\u{1F6E0}", "Workers", {
|
|
150
|
+
children: [...this.#workers].map((worker) => {
|
|
151
|
+
let diagnostic = worker[RuntimeService.label];
|
|
152
|
+
if (diagnostic === void 0) {
|
|
153
|
+
diagnostic = worker[Diagnostic.value];
|
|
154
|
+
if (diagnostic === void 0) {
|
|
155
|
+
diagnostic = worker.toString();
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return diagnostic;
|
|
159
|
+
})
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
#cancelWorker(worker) {
|
|
163
|
+
if (this.#cancelled.has(worker)) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const cancel = () => {
|
|
167
|
+
this.#cancelled.add(worker);
|
|
168
|
+
if (worker.close) {
|
|
169
|
+
this.#cancelled.add(worker);
|
|
170
|
+
return Promise.resolve(worker.close()).finally(() => this.delete(worker));
|
|
171
|
+
}
|
|
172
|
+
if (worker[Symbol.asyncDispose]) {
|
|
173
|
+
this.#cancelled.add(worker);
|
|
174
|
+
return Promise.resolve(worker[Symbol.asyncDispose]?.()).finally(() => this.delete(worker));
|
|
175
|
+
}
|
|
176
|
+
if (worker[Symbol.dispose]) {
|
|
177
|
+
worker[Symbol.dispose]?.();
|
|
178
|
+
this.delete(worker);
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
if (worker.construction) {
|
|
183
|
+
worker.construction.onSuccess(cancel);
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
return cancel();
|
|
187
|
+
}
|
|
188
|
+
#crash(cause) {
|
|
189
|
+
if (cause) {
|
|
190
|
+
logger.error(cause);
|
|
191
|
+
}
|
|
192
|
+
this.crashed.emit(cause);
|
|
193
|
+
this.cancel();
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
((RuntimeService2) => {
|
|
197
|
+
RuntimeService2.label = Symbol("label");
|
|
198
|
+
})(RuntimeService || (RuntimeService = {}));
|
|
199
|
+
export {
|
|
200
|
+
RuntimeService
|
|
201
|
+
};
|
|
202
|
+
//# sourceMappingURL=RuntimeService.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/environment/RuntimeService.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["RuntimeService"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Diagnostic } from "../log/Diagnostic.js";
|
|
7
|
+
import type { Environment } from "./Environment.js";
|
|
8
|
+
import { Environmental } from "./Environmental.js";
|
|
9
|
+
/**
|
|
10
|
+
* Environmental configuration values.
|
|
11
|
+
*/
|
|
12
|
+
export declare class VariableService {
|
|
13
|
+
#private;
|
|
14
|
+
constructor(environment: Environment);
|
|
15
|
+
static [Environmental.create](environment: Environment): VariableService;
|
|
16
|
+
get [Diagnostic.value](): string;
|
|
17
|
+
get vars(): VariableService.Map;
|
|
18
|
+
/**
|
|
19
|
+
* Configure a component.
|
|
20
|
+
*
|
|
21
|
+
* Runs the supplied {@link configurator} immediately and whenever variables reference by the {@link configurator}
|
|
22
|
+
* change.
|
|
23
|
+
*
|
|
24
|
+
* To terminate reconfiguration invoke {@link VariableService.Usage.close} on the return value.
|
|
25
|
+
*/
|
|
26
|
+
use(configurator: () => void): VariableService.Usage;
|
|
27
|
+
get<T extends VariableService.Primitive>(name: string, fallback?: T): T;
|
|
28
|
+
get<T extends VariableService.Value>(name: string, fallback: T): T;
|
|
29
|
+
get<T extends VariableService.Value>(name: string): T | undefined;
|
|
30
|
+
has(name: string): boolean;
|
|
31
|
+
set(name: string, value: VariableService.Value): void;
|
|
32
|
+
string(name: string): string;
|
|
33
|
+
boolean(name: string): boolean;
|
|
34
|
+
number(name: string): number | undefined;
|
|
35
|
+
integer(name: string, fallback?: number): number | undefined;
|
|
36
|
+
increment(name: string): number;
|
|
37
|
+
addConfigStyle(vars: VariableService.Map): void;
|
|
38
|
+
addUnixEnvStyle(vars: Record<string, string | undefined>): void;
|
|
39
|
+
addArgvStyle(vars: string[]): void;
|
|
40
|
+
}
|
|
41
|
+
export declare namespace VariableService {
|
|
42
|
+
interface Options {
|
|
43
|
+
unixEnvStyle?: Record<string, string>;
|
|
44
|
+
argvStyle?: string[];
|
|
45
|
+
configStyle?: Map;
|
|
46
|
+
}
|
|
47
|
+
interface Map extends Record<string, Value> {
|
|
48
|
+
}
|
|
49
|
+
type List = Value[];
|
|
50
|
+
type Primitive = number | string | boolean;
|
|
51
|
+
type Value = Primitive | Map | List;
|
|
52
|
+
interface Usage {
|
|
53
|
+
variables: Set<string>;
|
|
54
|
+
configurator(): void;
|
|
55
|
+
close(): void;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=VariableService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariableService.d.ts","sourceRoot":"","sources":["../../../src/environment/VariableService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,qBAAa,eAAe;;gBAKZ,WAAW,EAAE,WAAW;IAIpC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW;IAItD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAErB;IAED,IAAI,IAAI,wBAEP;IAED;;;;;;;OAOG;IACH,GAAG,CAAC,YAAY,EAAE,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK;IAqBpD,GAAG,CAAC,CAAC,SAAS,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;IAEvE,GAAG,CAAC,CAAC,SAAS,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAElE,GAAG,CAAC,CAAC,SAAS,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IA4BjE,GAAG,CAAC,IAAI,EAAE,MAAM;IAIhB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK;IA2B9C,MAAM,CAAC,IAAI,EAAE,MAAM;IAcnB,OAAO,CAAC,IAAI,EAAE,MAAM;IAkBpB,MAAM,CAAC,IAAI,EAAE,MAAM;IAcnB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAOvC,SAAS,CAAC,IAAI,EAAE,MAAM;IAMtB,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG;IAmBxC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAIxD,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE;CAgB9B;AAED,yBAAiB,eAAe,CAAC;IAC7B,UAAiB,OAAO;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,WAAW,CAAC,EAAE,GAAG,CAAC;KACrB;IAED,UAAiB,GAAI,SAAQ,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;KAAG;IACrD,KAAY,IAAI,GAAG,KAAK,EAAE,CAAC;IAC3B,KAAY,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAClD,KAAY,KAAK,GAAG,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC;IAC3C,UAAiB,KAAK;QAClB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,YAAY,IAAI,IAAI,CAAC;QACrB,KAAK,IAAI,IAAI,CAAC;KACjB;CACJ"}
|