@matter/general 0.16.0-alpha.0-20251205-dfb1e1556 → 0.16.0-alpha.0-20251209-d6072d23e
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/cjs/MatterError.js +2 -2
- package/dist/cjs/MatterError.js.map +1 -1
- package/dist/cjs/codec/DerTypes.d.ts.map +1 -1
- package/dist/cjs/codec/DerTypes.js +2 -1
- package/dist/cjs/codec/DerTypes.js.map +1 -1
- package/dist/cjs/crypto/NodeJsStyleCrypto.d.ts +60 -3
- package/dist/cjs/crypto/NodeJsStyleCrypto.d.ts.map +1 -1
- package/dist/cjs/crypto/NodeJsStyleCrypto.js.map +1 -1
- package/dist/cjs/environment/Environment.d.ts +4 -1
- package/dist/cjs/environment/Environment.d.ts.map +1 -1
- package/dist/cjs/environment/Environment.js +83 -3
- package/dist/cjs/environment/Environment.js.map +1 -1
- package/dist/cjs/environment/Environmental.js +1 -1
- package/dist/cjs/environment/Environmental.js.map +1 -1
- package/dist/cjs/environment/RuntimeService.d.ts +3 -44
- package/dist/cjs/environment/RuntimeService.d.ts.map +1 -1
- package/dist/cjs/environment/RuntimeService.js +65 -10
- package/dist/cjs/environment/RuntimeService.js.map +2 -2
- package/dist/cjs/environment/Worker.d.ts +56 -0
- package/dist/cjs/environment/Worker.d.ts.map +1 -0
- package/dist/cjs/environment/Worker.js +44 -0
- package/dist/cjs/environment/Worker.js.map +6 -0
- package/dist/cjs/environment/index.d.ts +1 -0
- package/dist/cjs/environment/index.d.ts.map +1 -1
- package/dist/cjs/environment/index.js +1 -0
- package/dist/cjs/environment/index.js.map +1 -1
- package/dist/cjs/log/Diagnostic.d.ts +11 -1
- package/dist/cjs/log/Diagnostic.d.ts.map +1 -1
- package/dist/cjs/log/Diagnostic.js +3 -0
- package/dist/cjs/log/Diagnostic.js.map +1 -1
- package/dist/cjs/log/DiagnosticPresentation.d.ts +4 -0
- package/dist/cjs/log/DiagnosticPresentation.d.ts.map +1 -1
- package/dist/cjs/log/DiagnosticPresentation.js +3 -2
- package/dist/cjs/log/DiagnosticPresentation.js.map +1 -1
- package/dist/cjs/log/DiagnosticSource.d.ts +1 -1
- package/dist/cjs/log/DiagnosticSource.d.ts.map +1 -1
- package/dist/cjs/log/DiagnosticSource.js +5 -1
- package/dist/cjs/log/DiagnosticSource.js.map +1 -1
- package/dist/cjs/log/LogFormat.js +2 -2
- package/dist/cjs/log/LogFormat.js.map +1 -1
- package/dist/cjs/log/NodeJsStyleInspectable.js +1 -1
- package/dist/cjs/log/NodeJsStyleInspectable.js.map +1 -1
- package/dist/cjs/net/Channel.d.ts +1 -1
- package/dist/cjs/net/Channel.d.ts.map +1 -1
- package/dist/cjs/net/Channel.js +1 -1
- package/dist/cjs/net/Channel.js.map +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.d.ts +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -1
- package/dist/cjs/net/mock/NetworkSimulator.d.ts.map +1 -1
- package/dist/cjs/net/mock/NetworkSimulator.js +2 -1
- package/dist/cjs/net/mock/NetworkSimulator.js.map +1 -1
- package/dist/cjs/net/udp/UdpChannel.d.ts +5 -1
- package/dist/cjs/net/udp/UdpChannel.d.ts.map +1 -1
- package/dist/cjs/net/udp/UdpMulticastServer.d.ts +4 -6
- package/dist/cjs/net/udp/UdpMulticastServer.d.ts.map +1 -1
- package/dist/cjs/net/udp/UdpMulticastServer.js +114 -37
- package/dist/cjs/net/udp/UdpMulticastServer.js.map +1 -1
- package/dist/cjs/polyfills/disposable.js +2 -2
- package/dist/cjs/polyfills/disposable.js.map +1 -1
- package/dist/cjs/polyfills/metadata.js +1 -1
- package/dist/cjs/polyfills/metadata.js.map +1 -1
- package/dist/cjs/time/StandardTime.d.ts +38 -0
- package/dist/cjs/time/StandardTime.d.ts.map +1 -0
- package/dist/cjs/time/StandardTime.js +172 -0
- package/dist/cjs/time/StandardTime.js.map +6 -0
- package/dist/cjs/time/Time.d.ts +4 -23
- package/dist/cjs/time/Time.d.ts.map +1 -1
- package/dist/cjs/time/Time.js +12 -88
- package/dist/cjs/time/Time.js.map +1 -1
- package/dist/cjs/time/Timestamp.d.ts +5 -0
- package/dist/cjs/time/Timestamp.d.ts.map +1 -1
- package/dist/cjs/time/Timestamp.js +4 -0
- package/dist/cjs/time/Timestamp.js.map +1 -1
- package/dist/cjs/time/index.d.ts +1 -0
- package/dist/cjs/time/index.d.ts.map +1 -1
- package/dist/cjs/time/index.js +1 -0
- package/dist/cjs/time/index.js.map +1 -1
- package/dist/cjs/transaction/Resource.js +1 -1
- package/dist/cjs/transaction/Resource.js.map +1 -1
- package/dist/cjs/transaction/Transaction.d.ts +12 -4
- package/dist/cjs/transaction/Transaction.d.ts.map +1 -1
- package/dist/cjs/transaction/Transaction.js +4 -4
- package/dist/cjs/transaction/Transaction.js.map +1 -1
- package/dist/cjs/transaction/Tx.d.ts +2 -1
- package/dist/cjs/transaction/Tx.d.ts.map +1 -1
- package/dist/cjs/transaction/Tx.js +92 -6
- package/dist/cjs/transaction/Tx.js.map +1 -1
- package/dist/cjs/util/Abort.js +1 -1
- package/dist/cjs/util/Abort.js.map +1 -1
- package/dist/cjs/util/Construction.d.ts +2 -1
- package/dist/cjs/util/Construction.d.ts.map +1 -1
- package/dist/cjs/util/Construction.js +62 -18
- package/dist/cjs/util/Construction.js.map +2 -2
- package/dist/cjs/util/DataReadQueue.d.ts +1 -5
- package/dist/cjs/util/DataReadQueue.d.ts.map +1 -1
- package/dist/cjs/util/DataReadQueue.js +12 -11
- package/dist/cjs/util/DataReadQueue.js.map +1 -1
- package/dist/cjs/util/Decorator.js +1 -1
- package/dist/cjs/util/Decorator.js.map +1 -1
- package/dist/cjs/util/DeepEqual.js +1 -1
- package/dist/cjs/util/DeepEqual.js.map +1 -1
- package/dist/cjs/util/FormattedText.d.ts +1 -1
- package/dist/cjs/util/FormattedText.d.ts.map +1 -1
- package/dist/cjs/util/FormattedText.js +1 -3
- package/dist/cjs/util/FormattedText.js.map +1 -1
- package/dist/cjs/util/Lifetime.d.ts +97 -0
- package/dist/cjs/util/Lifetime.d.ts.map +1 -0
- package/dist/cjs/util/Lifetime.js +166 -0
- package/dist/cjs/util/Lifetime.js.map +6 -0
- package/dist/cjs/util/Multiplex.js +2 -2
- package/dist/cjs/util/Multiplex.js.map +1 -1
- package/dist/cjs/util/Observable.d.ts +27 -26
- package/dist/cjs/util/Observable.d.ts.map +1 -1
- package/dist/cjs/util/Observable.js +78 -37
- package/dist/cjs/util/Observable.js.map +2 -2
- package/dist/cjs/util/String.d.ts +5 -29
- package/dist/cjs/util/String.d.ts.map +1 -1
- package/dist/cjs/util/String.js +16 -158
- package/dist/cjs/util/String.js.map +2 -2
- package/dist/cjs/util/identifier-case.d.ts +19 -0
- package/dist/cjs/util/identifier-case.d.ts.map +1 -0
- package/dist/cjs/util/identifier-case.js +99 -0
- package/dist/cjs/util/identifier-case.js.map +6 -0
- package/dist/cjs/util/index.d.ts +3 -0
- package/dist/cjs/util/index.d.ts.map +1 -1
- package/dist/cjs/util/index.js +3 -0
- package/dist/cjs/util/index.js.map +1 -1
- package/dist/cjs/util/serialize.d.ts +25 -0
- package/dist/cjs/util/serialize.d.ts.map +1 -0
- package/dist/cjs/util/serialize.js +116 -0
- package/dist/cjs/util/serialize.js.map +6 -0
- package/dist/esm/MatterError.js +1 -1
- package/dist/esm/codec/DerTypes.d.ts.map +1 -1
- package/dist/esm/codec/DerTypes.js +2 -1
- package/dist/esm/codec/DerTypes.js.map +1 -1
- package/dist/esm/crypto/NodeJsStyleCrypto.d.ts +60 -3
- package/dist/esm/crypto/NodeJsStyleCrypto.d.ts.map +1 -1
- package/dist/esm/crypto/NodeJsStyleCrypto.js.map +1 -1
- package/dist/esm/environment/Environment.d.ts +4 -1
- package/dist/esm/environment/Environment.d.ts.map +1 -1
- package/dist/esm/environment/Environment.js +83 -3
- package/dist/esm/environment/Environment.js.map +1 -1
- package/dist/esm/environment/Environmental.js +1 -1
- package/dist/esm/environment/Environmental.js.map +1 -1
- package/dist/esm/environment/RuntimeService.d.ts +3 -44
- package/dist/esm/environment/RuntimeService.d.ts.map +1 -1
- package/dist/esm/environment/RuntimeService.js +65 -10
- package/dist/esm/environment/RuntimeService.js.map +2 -2
- package/dist/esm/environment/Worker.d.ts +56 -0
- package/dist/esm/environment/Worker.d.ts.map +1 -0
- package/dist/esm/environment/Worker.js +24 -0
- package/dist/esm/environment/Worker.js.map +6 -0
- package/dist/esm/environment/index.d.ts +1 -0
- package/dist/esm/environment/index.d.ts.map +1 -1
- package/dist/esm/environment/index.js +1 -0
- package/dist/esm/environment/index.js.map +1 -1
- package/dist/esm/log/Diagnostic.d.ts +11 -1
- package/dist/esm/log/Diagnostic.d.ts.map +1 -1
- package/dist/esm/log/Diagnostic.js +3 -0
- package/dist/esm/log/Diagnostic.js.map +1 -1
- package/dist/esm/log/DiagnosticPresentation.d.ts +4 -0
- package/dist/esm/log/DiagnosticPresentation.d.ts.map +1 -1
- package/dist/esm/log/DiagnosticPresentation.js +3 -2
- package/dist/esm/log/DiagnosticPresentation.js.map +1 -1
- package/dist/esm/log/DiagnosticSource.d.ts +1 -1
- package/dist/esm/log/DiagnosticSource.d.ts.map +1 -1
- package/dist/esm/log/DiagnosticSource.js +5 -1
- package/dist/esm/log/DiagnosticSource.js.map +1 -1
- package/dist/esm/log/LogFormat.js +1 -1
- package/dist/esm/log/LogFormat.js.map +1 -1
- package/dist/esm/log/NodeJsStyleInspectable.js +1 -1
- package/dist/esm/log/NodeJsStyleInspectable.js.map +1 -1
- package/dist/esm/net/Channel.d.ts +1 -1
- package/dist/esm/net/Channel.d.ts.map +1 -1
- package/dist/esm/net/Channel.js +1 -1
- package/dist/esm/net/Channel.js.map +1 -1
- package/dist/esm/net/mock/MockUdpChannel.d.ts +1 -1
- package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -1
- package/dist/esm/net/mock/NetworkSimulator.d.ts.map +1 -1
- package/dist/esm/net/mock/NetworkSimulator.js +2 -1
- package/dist/esm/net/mock/NetworkSimulator.js.map +1 -1
- package/dist/esm/net/udp/UdpChannel.d.ts +5 -1
- package/dist/esm/net/udp/UdpChannel.d.ts.map +1 -1
- package/dist/esm/net/udp/UdpMulticastServer.d.ts +4 -6
- package/dist/esm/net/udp/UdpMulticastServer.d.ts.map +1 -1
- package/dist/esm/net/udp/UdpMulticastServer.js +114 -37
- package/dist/esm/net/udp/UdpMulticastServer.js.map +1 -1
- package/dist/esm/polyfills/disposable.js +2 -2
- package/dist/esm/polyfills/disposable.js.map +1 -1
- package/dist/esm/polyfills/metadata.js +1 -1
- package/dist/esm/polyfills/metadata.js.map +1 -1
- package/dist/esm/time/StandardTime.d.ts +38 -0
- package/dist/esm/time/StandardTime.d.ts.map +1 -0
- package/dist/esm/time/StandardTime.js +152 -0
- package/dist/esm/time/StandardTime.js.map +6 -0
- package/dist/esm/time/Time.d.ts +4 -23
- package/dist/esm/time/Time.d.ts.map +1 -1
- package/dist/esm/time/Time.js +12 -88
- package/dist/esm/time/Time.js.map +1 -1
- package/dist/esm/time/Timestamp.d.ts +5 -0
- package/dist/esm/time/Timestamp.d.ts.map +1 -1
- package/dist/esm/time/Timestamp.js +4 -0
- package/dist/esm/time/Timestamp.js.map +1 -1
- package/dist/esm/time/index.d.ts +1 -0
- package/dist/esm/time/index.d.ts.map +1 -1
- package/dist/esm/time/index.js +1 -0
- package/dist/esm/time/index.js.map +1 -1
- package/dist/esm/transaction/Resource.js +1 -1
- package/dist/esm/transaction/Resource.js.map +1 -1
- package/dist/esm/transaction/Transaction.d.ts +12 -4
- package/dist/esm/transaction/Transaction.d.ts.map +1 -1
- package/dist/esm/transaction/Transaction.js +4 -4
- package/dist/esm/transaction/Transaction.js.map +1 -1
- package/dist/esm/transaction/Tx.d.ts +2 -1
- package/dist/esm/transaction/Tx.d.ts.map +1 -1
- package/dist/esm/transaction/Tx.js +92 -6
- package/dist/esm/transaction/Tx.js.map +1 -1
- package/dist/esm/util/Abort.js +1 -1
- package/dist/esm/util/Abort.js.map +1 -1
- package/dist/esm/util/Construction.d.ts +2 -1
- package/dist/esm/util/Construction.d.ts.map +1 -1
- package/dist/esm/util/Construction.js +62 -18
- package/dist/esm/util/Construction.js.map +2 -2
- package/dist/esm/util/DataReadQueue.d.ts +1 -5
- package/dist/esm/util/DataReadQueue.d.ts.map +1 -1
- package/dist/esm/util/DataReadQueue.js +12 -11
- package/dist/esm/util/DataReadQueue.js.map +1 -1
- package/dist/esm/util/Decorator.js +1 -1
- package/dist/esm/util/Decorator.js.map +1 -1
- package/dist/esm/util/DeepEqual.js +1 -1
- package/dist/esm/util/DeepEqual.js.map +1 -1
- package/dist/esm/util/FormattedText.d.ts +1 -1
- package/dist/esm/util/FormattedText.d.ts.map +1 -1
- package/dist/esm/util/FormattedText.js +2 -4
- package/dist/esm/util/FormattedText.js.map +1 -1
- package/dist/esm/util/Lifetime.d.ts +97 -0
- package/dist/esm/util/Lifetime.d.ts.map +1 -0
- package/dist/esm/util/Lifetime.js +146 -0
- package/dist/esm/util/Lifetime.js.map +6 -0
- package/dist/esm/util/Multiplex.js +2 -2
- package/dist/esm/util/Multiplex.js.map +1 -1
- package/dist/esm/util/Observable.d.ts +27 -26
- package/dist/esm/util/Observable.d.ts.map +1 -1
- package/dist/esm/util/Observable.js +78 -37
- package/dist/esm/util/Observable.js.map +2 -2
- package/dist/esm/util/String.d.ts +5 -29
- package/dist/esm/util/String.d.ts.map +1 -1
- package/dist/esm/util/String.js +16 -158
- package/dist/esm/util/String.js.map +2 -2
- package/dist/esm/util/identifier-case.d.ts +19 -0
- package/dist/esm/util/identifier-case.d.ts.map +1 -0
- package/dist/esm/util/identifier-case.js +79 -0
- package/dist/esm/util/identifier-case.js.map +6 -0
- package/dist/esm/util/index.d.ts +3 -0
- package/dist/esm/util/index.d.ts.map +1 -1
- package/dist/esm/util/index.js +3 -0
- package/dist/esm/util/index.js.map +1 -1
- package/dist/esm/util/serialize.d.ts +25 -0
- package/dist/esm/util/serialize.d.ts.map +1 -0
- package/dist/esm/util/serialize.js +96 -0
- package/dist/esm/util/serialize.js.map +6 -0
- package/package.json +2 -2
- package/src/MatterError.ts +1 -1
- package/src/codec/DerTypes.ts +2 -1
- package/src/crypto/NodeJsStyleCrypto.ts +98 -6
- package/src/environment/Environment.ts +29 -4
- package/src/environment/RuntimeService.ts +19 -55
- package/src/environment/Worker.ts +75 -0
- package/src/environment/index.ts +1 -0
- package/src/log/Diagnostic.ts +15 -1
- package/src/log/DiagnosticPresentation.ts +7 -2
- package/src/log/DiagnosticSource.ts +5 -1
- package/src/log/LogFormat.ts +1 -1
- package/src/net/Channel.ts +2 -2
- package/src/net/mock/MockUdpChannel.ts +1 -1
- package/src/net/mock/NetworkSimulator.ts +2 -1
- package/src/net/udp/UdpChannel.ts +6 -1
- package/src/net/udp/UdpMulticastServer.ts +72 -34
- package/src/time/StandardTime.ts +122 -0
- package/src/time/Time.ts +13 -105
- package/src/time/Timestamp.ts +8 -0
- package/src/time/index.ts +1 -0
- package/src/transaction/Transaction.ts +19 -6
- package/src/transaction/Tx.ts +49 -2
- package/src/util/Abort.ts +1 -1
- package/src/util/Construction.ts +76 -18
- package/src/util/DataReadQueue.ts +14 -12
- package/src/util/FormattedText.ts +1 -1
- package/src/util/Lifetime.ts +284 -0
- package/src/util/Multiplex.ts +2 -2
- package/src/util/Observable.ts +133 -54
- package/src/util/String.ts +14 -215
- package/src/util/identifier-case.ts +101 -0
- package/src/util/index.ts +3 -0
- package/src/util/serialize.ts +129 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/time/StandardTime.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAAoC;AACpC,kBAAqB;AACrB,6BAA2B;AAC3B,sBAAyB;AAEzB,kBAA4B;AAC5B,sBAAwB;AAZxB;AAAA;AAAA;AAAA;AAAA;AAiBO,MAAM,qBAAqB,iBAAK;AAAA,EAC1B,SAAS,MAAc,UAAoB,UAA0B;AAC1E,WAAO,IAAI,cAAc,MAAM,UAAU,UAAU,KAAK;AAAA,EAC5D;AAAA,EAES,iBAAiB,MAAc,UAAoB,UAA0B;AAClF,WAAO,IAAI,cAAc,MAAM,UAAU,UAAU,IAAI;AAAA,EAC3D;AACJ;AAKO,MAAM,cAA+B;AAAA,EAUxC,YACa,MACT,UACiB,UACR,YACX;AAJW;AAEQ;AACR;AAET,SAAK,WAAW;AAAA,EACpB;AAAA,EAhBA;AAAA,EACA,WAAW;AAAA,EACX,YAAY;AAAA;AAAA,EACZ,YAAY;AAAA,EAEZ,IAAI,WAAW;AACX,WAAO,OAAO,KAAK,QAAQ;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,IAAI,SAAS,UAAoB;AAC7B,QAAI,WAAW,KAAK,WAAW,YAAY;AACvC,YAAM,IAAI;AAAA,QACN,uBAAuB,QAAQ;AAAA,MACnC;AAAA,IACJ;AACA,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,QAAQ,SAAkB;AAC1B,QAAI,YAAY,KAAK,UAAU;AAC3B;AAAA,IACJ;AAGA,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,UAAU,KAAK;AACrB,UAAI,SAAS;AACT,gBAAQ,QAAQ;AAAA,MACpB,OAAO;AACH,gBAAQ,MAAM;AAAA,MAClB;AAAA,IACJ;AAEA,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,QAAQ;AACJ,QAAI,KAAK,UAAW,MAAK,KAAK;AAC9B,qBAAK,SAAS,IAAI;AAClB,SAAK,YAAY;AACjB,SAAK,YAAY,KAAK,aAAa,cAAc,YAAY,MAAM;AAC/D;AAAA;AAAA,cAAM,WAAW,kDAAS,mCAAW,KAAK,MAAM,GAAG,CAAC;AACpD,YAAI,CAAC,KAAK,YAAY;AAClB,2BAAK,WAAW,IAAI;AACpB,eAAK,YAAY;AAAA,QACrB;AACA,aAAK,SAAS,QAAQ;AAAA,eALtB;AAAA;AAAA;AAAA;AAAA;AAAA,IAMJ,GAAG,KAAK,QAAQ;AAChB,WAAO;AAAA,EACX;AAAA,EAEA,OAAO;AACH,KAAC,KAAK,aAAa,gBAAgB,cAAc,KAAK,QAAyC;AAC/F,qBAAK,WAAW,IAAI;AACpB,SAAK,YAAY;AACjB,WAAO;AAAA,EACX;AACJ;AAEA,iBAAK,KAAK,MAAM;AACZ,mBAAK,UAAU,IAAI,aAAa;AAEhC,mBAAK,QAAQ,WAAW,iBAAK,QAAQ,YAAY,iBAAK;AAGtD,MAAI,OAAO,gBAAgB,aAAa;AACpC,iBAAa,YAAY,gBAAI;AAAA,EACjC;AACJ,CAAC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/cjs/time/Time.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { CancelablePromise } from "#util/Cancelable.js";
|
|
7
|
+
import type { Lifetime } from "#util/Lifetime.js";
|
|
7
8
|
import { Diagnostic } from "../log/Diagnostic.js";
|
|
8
9
|
import { Duration } from "./Duration.js";
|
|
9
10
|
import type { Timestamp } from "./Timestamp.js";
|
|
@@ -28,12 +29,12 @@ export declare class Time {
|
|
|
28
29
|
/**
|
|
29
30
|
* Create a timer that will call callback after durationMs has passed.
|
|
30
31
|
*/
|
|
31
|
-
getTimer(
|
|
32
|
+
getTimer(_name: string, _duration: Duration, _callback: Timer.Callback): Timer;
|
|
32
33
|
static readonly getTimer: (name: string, duration: Duration, callback: Timer.Callback) => Timer;
|
|
33
34
|
/**
|
|
34
35
|
* Create a timer that will periodically call callback at intervalMs intervals.
|
|
35
36
|
*/
|
|
36
|
-
getPeriodicTimer(
|
|
37
|
+
getPeriodicTimer(_name: string, _duration: Duration, _callback: Timer.Callback): Timer;
|
|
37
38
|
static readonly getPeriodicTimer: (name: string, duration: Duration, callback: Timer.Callback) => Timer;
|
|
38
39
|
/**
|
|
39
40
|
* Create a promise that resolves after a specific interval or when canceled, whichever comes first.
|
|
@@ -65,26 +66,6 @@ export interface Timer {
|
|
|
65
66
|
stop(): Timer;
|
|
66
67
|
}
|
|
67
68
|
export declare namespace Timer {
|
|
68
|
-
type Callback = () => any;
|
|
69
|
-
}
|
|
70
|
-
export declare class StandardTimer implements Timer {
|
|
71
|
-
#private;
|
|
72
|
-
readonly name: string;
|
|
73
|
-
private readonly callback;
|
|
74
|
-
readonly isPeriodic: boolean;
|
|
75
|
-
isRunning: boolean;
|
|
76
|
-
get systemId(): number;
|
|
77
|
-
constructor(name: string, duration: Duration, callback: Timer.Callback, isPeriodic: boolean);
|
|
78
|
-
/**
|
|
79
|
-
* The timer's interval.
|
|
80
|
-
*
|
|
81
|
-
* You can change this value but changes have no effect until the timer restarts.
|
|
82
|
-
*/
|
|
83
|
-
set interval(interval: Duration);
|
|
84
|
-
get interval(): Duration;
|
|
85
|
-
get utility(): boolean;
|
|
86
|
-
set utility(utility: boolean);
|
|
87
|
-
start(): this;
|
|
88
|
-
stop(): this;
|
|
69
|
+
type Callback = (lifetime: Lifetime) => any;
|
|
89
70
|
}
|
|
90
71
|
//# sourceMappingURL=Time.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../../src/time/Time.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../../../src/time/Time.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD;;;;;GAKG;AACH,qBAAa,IAAI;IACb,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC;IAErB,MAAM,CAAC,OAAO;kBACK,SAAS;mBACR,SAAS;MAC3B;IAEF,IAAI,GAAG,SAEN;IACD,MAAM,KAAK,GAAG,SAEb;IAED,IAAI,KAAK,WAER;IACD,MAAM,KAAK,KAAK,IACiB,SAAS,CACzC;IAED,IAAI,KAAK,IAC4D,SAAS,CAC7E;IACD,MAAM,KAAK,KAAK,cAEf;IAED;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK;IAG9E,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAI,MAAM,MAAM,EAAE,UAAU,QAAQ,EAAE,UAAU,KAAK,CAAC,QAAQ,KAAG,KAAK,CAC1C;IAEpD;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,GAAG,KAAK;IAGtF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAI,MAAM,MAAM,EAAE,UAAU,QAAQ,EAAE,UAAU,KAAK,CAAC,QAAQ,KAAG,KAAK,CAC1C;IAE5D;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,iBAAiB;IAgB1D,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAI7C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK;IAK5B,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK;IAI9B,MAAM,KAAK,MAAM,eAEhB;CACJ;AAWD,MAAM,WAAW,KAAK;IAClB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;IAEjB,8BAA8B;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAElB,6BAA6B;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IAEnB,2CAA2C;IAC3C,UAAU,EAAE,OAAO,CAAC;IAEpB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC;IAE7B,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IAEnB,oCAAoC;IACpC,KAAK,IAAI,KAAK,CAAC;IAEf,mCAAmC;IACnC,IAAI,IAAI,KAAK,CAAC;CACjB;AAED,yBAAiB,KAAK,CAAC;IACnB,KAAY,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,GAAG,CAAC;CACtD"}
|
package/dist/cjs/time/Time.js
CHANGED
|
@@ -18,16 +18,15 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var Time_exports = {};
|
|
20
20
|
__export(Time_exports, {
|
|
21
|
-
StandardTimer: () => StandardTimer,
|
|
22
21
|
Time: () => Time
|
|
23
22
|
});
|
|
24
23
|
module.exports = __toCommonJS(Time_exports);
|
|
25
|
-
var
|
|
24
|
+
var import_DiagnosticPresentation = require("#log/DiagnosticPresentation.js");
|
|
25
|
+
var import_MatterError = require("#MatterError.js");
|
|
26
26
|
var import_Cancelable = require("#util/Cancelable.js");
|
|
27
|
-
var import_MatterError = require("../MatterError.js");
|
|
28
27
|
var import_Diagnostic = require("../log/Diagnostic.js");
|
|
29
28
|
var import_DiagnosticSource = require("../log/DiagnosticSource.js");
|
|
30
|
-
var
|
|
29
|
+
var import_Duration = require("./Duration.js");
|
|
31
30
|
/**
|
|
32
31
|
* @license
|
|
33
32
|
* Copyright 2022-2025 Matter.js Authors
|
|
@@ -61,15 +60,15 @@ class Time {
|
|
|
61
60
|
/**
|
|
62
61
|
* Create a timer that will call callback after durationMs has passed.
|
|
63
62
|
*/
|
|
64
|
-
getTimer(
|
|
65
|
-
|
|
63
|
+
getTimer(_name, _duration, _callback) {
|
|
64
|
+
throw new import_MatterError.NoProviderError();
|
|
66
65
|
}
|
|
67
66
|
static getTimer = (name, duration, callback) => Time.default.getTimer(name, duration, callback);
|
|
68
67
|
/**
|
|
69
68
|
* Create a timer that will periodically call callback at intervalMs intervals.
|
|
70
69
|
*/
|
|
71
|
-
getPeriodicTimer(
|
|
72
|
-
|
|
70
|
+
getPeriodicTimer(_name, _duration, _callback) {
|
|
71
|
+
throw new import_MatterError.NoProviderError();
|
|
73
72
|
}
|
|
74
73
|
static getPeriodicTimer = (name, duration, callback) => Time.default.getPeriodicTimer(name, duration, callback);
|
|
75
74
|
/**
|
|
@@ -81,7 +80,7 @@ class Time {
|
|
|
81
80
|
return new import_Cancelable.CancelablePromise(
|
|
82
81
|
(resolve) => {
|
|
83
82
|
resolver = resolve;
|
|
84
|
-
timer = Time.getTimer(name, duration, resolve);
|
|
83
|
+
timer = Time.getTimer(name, duration, () => resolve());
|
|
85
84
|
timer.start();
|
|
86
85
|
},
|
|
87
86
|
() => {
|
|
@@ -111,94 +110,19 @@ if (!performance || typeof performance.now !== "function" || typeof performance.
|
|
|
111
110
|
}
|
|
112
111
|
});
|
|
113
112
|
}
|
|
114
|
-
class StandardTimer {
|
|
115
|
-
constructor(name, duration, callback, isPeriodic) {
|
|
116
|
-
this.name = name;
|
|
117
|
-
this.callback = callback;
|
|
118
|
-
this.isPeriodic = isPeriodic;
|
|
119
|
-
this.interval = duration;
|
|
120
|
-
}
|
|
121
|
-
#timerId;
|
|
122
|
-
#utility = false;
|
|
123
|
-
#interval = import_TimeUnit.Instant;
|
|
124
|
-
// Real value installed in constructor
|
|
125
|
-
isRunning = false;
|
|
126
|
-
get systemId() {
|
|
127
|
-
return Number(this.#timerId);
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* The timer's interval.
|
|
131
|
-
*
|
|
132
|
-
* You can change this value but changes have no effect until the timer restarts.
|
|
133
|
-
*/
|
|
134
|
-
set interval(interval) {
|
|
135
|
-
if (interval < 0 || interval > 2147483647) {
|
|
136
|
-
throw new import_MatterError.ImplementationError(
|
|
137
|
-
`Invalid intervalMs: ${interval}. The value must be between 0 and 32-bit maximum value (2147483647)`
|
|
138
|
-
);
|
|
139
|
-
}
|
|
140
|
-
this.#interval = interval;
|
|
141
|
-
}
|
|
142
|
-
get interval() {
|
|
143
|
-
return this.#interval;
|
|
144
|
-
}
|
|
145
|
-
get utility() {
|
|
146
|
-
return this.#utility;
|
|
147
|
-
}
|
|
148
|
-
set utility(utility) {
|
|
149
|
-
if (utility === this.#utility) {
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
if (this.#timerId !== void 0) {
|
|
153
|
-
const timerId = this.#timerId;
|
|
154
|
-
if (utility) {
|
|
155
|
-
timerId.unref?.();
|
|
156
|
-
} else {
|
|
157
|
-
timerId.ref?.();
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
this.#utility = utility;
|
|
161
|
-
}
|
|
162
|
-
start() {
|
|
163
|
-
if (this.isRunning) this.stop();
|
|
164
|
-
Time.register(this);
|
|
165
|
-
this.isRunning = true;
|
|
166
|
-
this.#timerId = (this.isPeriodic ? setInterval : setTimeout)(() => {
|
|
167
|
-
if (!this.isPeriodic) {
|
|
168
|
-
Time.unregister(this);
|
|
169
|
-
this.isRunning = false;
|
|
170
|
-
}
|
|
171
|
-
this.callback();
|
|
172
|
-
}, this.interval);
|
|
173
|
-
return this;
|
|
174
|
-
}
|
|
175
|
-
stop() {
|
|
176
|
-
(this.isPeriodic ? clearInterval : clearTimeout)(this.#timerId);
|
|
177
|
-
Time.unregister(this);
|
|
178
|
-
this.isRunning = false;
|
|
179
|
-
return this;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
113
|
import_DiagnosticSource.DiagnosticSource.add({
|
|
183
|
-
get [
|
|
114
|
+
get [import_DiagnosticPresentation.DiagnosticPresentation.value]() {
|
|
184
115
|
return import_Diagnostic.Diagnostic.node("\u23F1", "Timers", {
|
|
185
116
|
children: [...registry].map((timer) => [
|
|
186
117
|
timer.name,
|
|
187
118
|
import_Diagnostic.Diagnostic.dict({
|
|
188
119
|
periodic: timer.isPeriodic,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
120
|
+
up: timer.elapsed,
|
|
121
|
+
interval: import_Duration.Duration.format(timer.interval),
|
|
122
|
+
"system#": timer.systemId
|
|
192
123
|
})
|
|
193
124
|
])
|
|
194
125
|
});
|
|
195
126
|
}
|
|
196
127
|
});
|
|
197
|
-
import_Boot.Boot.init(() => {
|
|
198
|
-
Time.default = new Time();
|
|
199
|
-
Time.startup.systemMs = Time.startup.processMs = Time.nowMs;
|
|
200
|
-
if (typeof MatterHooks !== "undefined") {
|
|
201
|
-
MatterHooks?.timeSetup?.(Time);
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
128
|
//# sourceMappingURL=Time.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/time/Time.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,oCAAuC;AACvC,yBAAgC;AAChC,wBAAkC;AAElC,wBAA2B;AAC3B,8BAAiC;AACjC,sBAAyB;AAZzB;AAAA;AAAA;AAAA;AAAA;AAeA,MAAM,WAAW,oBAAI,IAAW;AAQzB,MAAM,KAAK;AAAA,EACd,OAAO;AAAA,EAEP,OAAO,UAAU;AAAA,IACb,UAAU;AAAA,IACV,WAAW;AAAA,EACf;AAAA,EAEA,IAAI,MAAM;AACN,WAAO,oBAAI,KAAK;AAAA,EACpB;AAAA,EACA,WAAW,MAAM;AACb,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,KAAK,IAAI;AAAA,EACpB;AAAA,EACA,WAAW,QAAQ;AACf,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,KAAK,MAAM,YAAY,IAAI,IAAI,YAAY,UAAU;AAAA,EAChE;AAAA,EACA,WAAW,QAAQ;AACf,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS,OAAe,WAAqB,WAAkC;AAC3E,UAAM,IAAI,mCAAgB;AAAA,EAC9B;AAAA,EACA,OAAgB,WAAW,CAAC,MAAc,UAAoB,aAC1D,KAAK,QAAQ,SAAS,MAAM,UAAU,QAAQ;AAAA;AAAA;AAAA;AAAA,EAKlD,iBAAiB,OAAe,WAAqB,WAAkC;AACnF,UAAM,IAAI,mCAAgB;AAAA,EAC9B;AAAA,EACA,OAAgB,mBAAmB,CAAC,MAAc,UAAoB,aAClE,KAAK,QAAQ,iBAAiB,MAAM,UAAU,QAAQ;AAAA;AAAA;AAAA;AAAA,EAK1D,MAAM,MAAc,UAAuC;AACvD,QAAI;AACJ,QAAI;AACJ,WAAO,IAAI;AAAA,MACP,aAAW;AACP,mBAAW;AACX,gBAAQ,KAAK,SAAS,MAAM,UAAU,MAAM,QAAQ,CAAC;AACrD,cAAM,MAAM;AAAA,MAChB;AAAA,MAEA,MAAM;AACF,cAAM,KAAK;AACX,iBAAS;AAAA,MACb;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,OAAO,MAAM,MAAc,UAAoB;AAC3C,WAAO,KAAK,QAAQ,MAAM,MAAM,QAAQ;AAAA,EAC5C;AAAA,EAEA,OAAO,SAAS,OAAc;AAC1B,aAAS,IAAI,KAAK;AAClB,UAAM,UAAU,6BAAW,QAAQ;AAAA,EACvC;AAAA,EAEA,OAAO,WAAW,OAAc;AAC5B,aAAS,OAAO,KAAK;AAAA,EACzB;AAAA,EAEA,WAAW,SAAS;AAChB,WAAO;AAAA,EACX;AACJ;AAGA,IAAI,CAAC,eAAe,OAAO,YAAY,QAAQ,cAAc,OAAO,YAAY,eAAe,UAAU;AACrG,SAAO,eAAe,KAAK,WAAW,SAAS;AAAA,IAC3C,MAAM;AACF,aAAO,KAAK;AAAA,IAChB;AAAA,EACJ,CAAC;AACL;AAmCA,yCAAiB,IAAI;AAAA,EACjB,KAAK,qDAAuB,KAAK,IAAI;AACjC,WAAO,6BAAW,KAAK,UAAK,UAAU;AAAA,MAClC,UAAU,CAAC,GAAG,QAAQ,EAAE,IAAI,WAAS;AAAA,QACjC,MAAM;AAAA,QACN,6BAAW,KAAK;AAAA,UACZ,UAAU,MAAM;AAAA,UAChB,IAAI,MAAM;AAAA,UACV,UAAU,yBAAS,OAAO,MAAM,QAAQ;AAAA,UACxC,WAAW,MAAM;AAAA,QACrB,CAAC;AAAA,MACL,CAAC;AAAA,IACL,CAAC;AAAA,EACL;AACJ,CAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { UnexpectedDataError } from "#MatterError.js";
|
|
7
7
|
import { Branded } from "#util/Type.js";
|
|
8
|
+
import type { Duration } from "./Duration.js";
|
|
8
9
|
/**
|
|
9
10
|
* A UNIX epoch timestamp in milliseconds.
|
|
10
11
|
*
|
|
@@ -43,5 +44,9 @@ export declare namespace Timestamp {
|
|
|
43
44
|
* Obtain a {@link Date} for a {@link Timestamp}.
|
|
44
45
|
*/
|
|
45
46
|
function dateOf(timestamp: Timestamp): Date;
|
|
47
|
+
/**
|
|
48
|
+
* Compute the duration between two timestamps.
|
|
49
|
+
*/
|
|
50
|
+
function delta(from: Timestamp, to: Timestamp): Duration;
|
|
46
51
|
}
|
|
47
52
|
//# sourceMappingURL=Timestamp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timestamp.d.ts","sourceRoot":"","sources":["../../../src/time/Timestamp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Timestamp.d.ts","sourceRoot":"","sources":["../../../src/time/Timestamp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;AAEzD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAC,UAAU,EAChE,MAAM,EAAE,CAAC,GACV,CAAC,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CA4BzD;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,mBAAmB;CAAG;AAEhE,yBAAiB,SAAS,CAAC;IACvB;;OAEG;IACH,KAAY,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAEzD;;OAEG;IACH,SAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,UAEzC;IAED;;OAEG;IACH,SAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,aAKvD;IAED;;OAEG;IACI,MAAM,IAAI,WAAe,CAAC;IAEjC;;OAEG;IACH,SAAgB,MAAM,CAAC,SAAS,EAAE,SAAS,QAE1C;IAED;;OAEG;IACH,SAAgB,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,GAC1B,QAAQ,CACjC;CACJ"}
|
|
@@ -74,5 +74,9 @@ class TimestampFormatError extends import_MatterError.UnexpectedDataError {
|
|
|
74
74
|
return new Date(timestamp);
|
|
75
75
|
}
|
|
76
76
|
Timestamp2.dateOf = dateOf;
|
|
77
|
+
function delta(from, to) {
|
|
78
|
+
return to - from;
|
|
79
|
+
}
|
|
80
|
+
Timestamp2.delta = delta;
|
|
77
81
|
})(Timestamp || (Timestamp = {}));
|
|
78
82
|
//# sourceMappingURL=Timestamp.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/time/Timestamp.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAAoC;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,yBAAoC;AAGpC,kBAAqB;AATrB;AAAA;AAAA;AAAA;AAAA;AAuBO,SAAS,UACZ,QACuD;AACvD,MAAI,WAAW,QAAW;AACtB,WAAO,iBAAK;AAAA,EAChB;AAEA,MAAI,OAAO,WAAW,UAAU;AAC5B,UAAM,OAAO,KAAK,MAAM,MAAM;AAC9B,QAAI,CAAC,OAAO,SAAS,KAAK,QAAQ,CAAC,GAAG;AAClC,YAAM,IAAI,qBAAqB,0BAA0B;AAAA,IAC7D;AAAA,EACJ,WAAW,OAAO,WAAW,YAAY,WAAW,QAAQ,kBAAkB,MAAM;AAChF,QAAI,CAAC,OAAO,SAAS,OAAO,QAAQ,CAAC,GAAG;AACpC,YAAM,IAAI,qBAAqB,wDAAwD;AAAA,IAC3F;AACA,aAAS,OAAO,QAAQ;AAAA,EAC5B,WAAW,OAAO,WAAW,UAAU;AACnC,aAAS,OAAO,MAAM;AAAA,EAC1B;AAEA,MAAI,OAAO,WAAW,UAAU;AAC5B,QAAI,CAAC,OAAO,SAAS,MAAM,GAAG;AAC1B,YAAM,IAAI,qBAAqB,qCAAqC;AAAA,IACxE;AAAA,EACJ,OAAO;AACH,UAAM,IAAI,qBAAqB,uCAAuC,OAAO,MAAM,GAAG;AAAA,EAC1F;AAEA,SAAO;AACX;AAKO,MAAM,6BAA6B,uCAAoB;AAAC;AAAA,CAExD,CAAUA,eAAV;AASI,WAAS,YAAY,QAAgB;AACxC,WAAO,KAAK,MAAM,SAAS,GAAI;AAAA,EACnC;AAFO,EAAAA,WAAS;AAOT,WAAS,iBAAiB,QAAyB;AACtD,QAAI,OAAO,WAAW,UAAU;AAC5B,eAAS,OAAO,MAAM;AAAA,IAC1B;AACA,WAAOA,WAAU,SAAS,GAAI;AAAA,EAClC;AALO,EAAAA,WAAS;AAUT,EAAMA,WAAA,OAAOA,WAAU,CAAC;AAKxB,WAAS,OAAO,WAAsB;AACzC,WAAO,IAAI,KAAK,SAAS;AAAA,EAC7B;AAFO,EAAAA,WAAS;AAOT,WAAS,MAAM,MAAiB,IAAe;AAClD,WAAQ,KAAK;AAAA,EACjB;AAFO,EAAAA,WAAS;AAAA,GAtCH;",
|
|
5
5
|
"names": ["Timestamp"]
|
|
6
6
|
}
|
package/dist/cjs/time/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/time/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/time/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
|
package/dist/cjs/time/index.js
CHANGED
|
@@ -16,6 +16,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
16
16
|
var time_exports = {};
|
|
17
17
|
module.exports = __toCommonJS(time_exports);
|
|
18
18
|
__reExport(time_exports, require("./Duration.js"), module.exports);
|
|
19
|
+
__reExport(time_exports, require("./StandardTime.js"), module.exports);
|
|
19
20
|
__reExport(time_exports, require("./Time.js"), module.exports);
|
|
20
21
|
__reExport(time_exports, require("./Timespan.js"), module.exports);
|
|
21
22
|
__reExport(time_exports, require("./Timestamp.js"), module.exports);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/time/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,yBAAc,0BANd;AAOA,yBAAc,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,yBAAc,0BANd;AAOA,yBAAc,8BAPd;AAQA,yBAAc,sBARd;AASA,yBAAc,0BATd;AAUA,yBAAc,2BAVd;AAWA,yBAAc,0BAXd;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -28,7 +28,7 @@ module.exports = __toCommonJS(Resource_exports);
|
|
|
28
28
|
*/
|
|
29
29
|
var Resource;
|
|
30
30
|
((Resource2) => {
|
|
31
|
-
Resource2.reference = Symbol("reference");
|
|
31
|
+
Resource2.reference = /* @__PURE__ */ Symbol("reference");
|
|
32
32
|
function isLocked(resource) {
|
|
33
33
|
while (resource[Resource2.reference] !== void 0) {
|
|
34
34
|
resource = resource[Resource2.reference];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/transaction/Resource.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6BO,IAAU;AAAA,CAAV,CAAUA,cAAV;AACI,EAAMA,UAAA,YAAY,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6BO,IAAU;AAAA,CAAV,CAAUA,cAAV;AACI,EAAMA,UAAA,YAAY,uBAAO,WAAW;AAEpC,WAAS,SAAS,UAAoB;AACzC,WAAO,SAASA,UAAS,SAAS,MAAM,QAAW;AAC/C,iBAAW,SAASA,UAAS,SAAS;AAAA,IAC1C;AACA,WAAO,SAAS,aAAa;AAAA,EACjC;AALO,EAAAA,UAAS;AAAA,GAHH;",
|
|
5
5
|
"names": ["Resource"]
|
|
6
6
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Lifetime } from "#util/Lifetime.js";
|
|
6
7
|
import { MaybePromise } from "#util/Promises.js";
|
|
7
8
|
import { Participant } from "./Participant.js";
|
|
8
9
|
import { Resource } from "./Resource.js";
|
|
@@ -24,7 +25,7 @@ import { Status } from "./Status.js";
|
|
|
24
25
|
*
|
|
25
26
|
* TODO - does prevent deadlock but we should probably add a timeout for resource locking
|
|
26
27
|
*/
|
|
27
|
-
export interface Transaction {
|
|
28
|
+
export interface Transaction extends Lifetime.Owner {
|
|
28
29
|
/**
|
|
29
30
|
* Diagnostic description of the transaction's source.
|
|
30
31
|
*/
|
|
@@ -125,6 +126,13 @@ export interface Transaction {
|
|
|
125
126
|
* After rollback an exclusive transaction becomes shared and data references refresh to the most recent value.
|
|
126
127
|
*/
|
|
127
128
|
rollback(): MaybePromise;
|
|
129
|
+
/**
|
|
130
|
+
* Destroy the transaction without proper commit or rollback.
|
|
131
|
+
*
|
|
132
|
+
* This guarantees a synchronous resolution but will result in an error if {@link Transaction#status} is not shared,
|
|
133
|
+
* read-only or destroyed.
|
|
134
|
+
*/
|
|
135
|
+
[Symbol.dispose](): void;
|
|
128
136
|
/**
|
|
129
137
|
* Wait for a set of transactions to complete.
|
|
130
138
|
*
|
|
@@ -147,7 +155,7 @@ export declare const Transaction: {
|
|
|
147
155
|
* The transaction is destroyed when {@link act} returns. You will receive an error if you access it after it is
|
|
148
156
|
* destroyed.
|
|
149
157
|
*/
|
|
150
|
-
act<T>(via: string, actor: (transaction: Transaction) => MaybePromise<T>): MaybePromise<T>;
|
|
158
|
+
act<T>(via: string, lifetime: Lifetime.Owner, actor: (transaction: Transaction) => MaybePromise<T>): MaybePromise<T>;
|
|
151
159
|
/**
|
|
152
160
|
* Create a transaction.
|
|
153
161
|
*
|
|
@@ -155,7 +163,7 @@ export declare const Transaction: {
|
|
|
155
163
|
*
|
|
156
164
|
* When closed the transaction commits automatically if exclusive.
|
|
157
165
|
*/
|
|
158
|
-
open(via: string, isolation?: Transaction.IsolationLevel): Transaction & Transaction.Finalization;
|
|
166
|
+
open(via: string, lifetime: Lifetime.Owner, isolation?: Transaction.IsolationLevel): Transaction & Transaction.Finalization;
|
|
159
167
|
Status: typeof Status;
|
|
160
168
|
Resource: typeof Resource;
|
|
161
169
|
[Symbol.toStringTag]: string;
|
|
@@ -170,7 +178,7 @@ export declare namespace Transaction {
|
|
|
170
178
|
}
|
|
171
179
|
interface Finalization {
|
|
172
180
|
/**
|
|
173
|
-
* Finish the transaction. If {@link result} is a promise this may result
|
|
181
|
+
* Finish the transaction. If {@link result} is a promise this may result in commit or rollback.
|
|
174
182
|
*/
|
|
175
183
|
resolve<T>(result: T): MaybePromise<Awaited<T>>;
|
|
176
184
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/Transaction.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../../src/transaction/Transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,8 +40,8 @@ const Transaction = {
|
|
|
40
40
|
* The transaction is destroyed when {@link act} returns. You will receive an error if you access it after it is
|
|
41
41
|
* destroyed.
|
|
42
42
|
*/
|
|
43
|
-
act(via, actor) {
|
|
44
|
-
const tx = (0, import_Tx.open)(via);
|
|
43
|
+
act(via, lifetime, actor) {
|
|
44
|
+
const tx = (0, import_Tx.open)(via, lifetime);
|
|
45
45
|
let result;
|
|
46
46
|
try {
|
|
47
47
|
result = actor(tx);
|
|
@@ -57,8 +57,8 @@ const Transaction = {
|
|
|
57
57
|
*
|
|
58
58
|
* When closed the transaction commits automatically if exclusive.
|
|
59
59
|
*/
|
|
60
|
-
open(via, isolation = "rw") {
|
|
61
|
-
return (0, import_Tx.open)(via, isolation);
|
|
60
|
+
open(via, lifetime, isolation = "rw") {
|
|
61
|
+
return (0, import_Tx.open)(via, lifetime, isolation);
|
|
62
62
|
},
|
|
63
63
|
Status: import_Status.Status,
|
|
64
64
|
Resource: import_Resource.Resource,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/transaction/Transaction.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,sBAAyB;AAEzB,oBAAuB;AACvB,gBAAqB;AAZrB;AAAA;AAAA;AAAA;AAAA;AAwKO,MAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWvB,IACI,KACA,UACA,OACe;AACf,UAAM,SAAK,gBAAK,KAAK,QAAQ;AAE7B,QAAI;AACJ,QAAI;AACA,eAAS,MAAM,EAAE;AAAA,IACrB,SAAS,GAAG;AACR,aAAO,GAAG,OAAO,CAAC;AAAA,IACtB;AAEA,WAAO,GAAG,QAAQ,MAAM;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,KAAK,KAAa,UAA0B,YAAwC,MAAM;AAEtF,eAAO,gBAAK,KAAK,UAAU,SAAS;AAAA,EACxC;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA,CAAC,OAAO,WAAW,GAAG;AAC1B;AAGA,YAAY,OAAO;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Lifetime } from "#util/Lifetime.js";
|
|
6
7
|
import type { Transaction } from "./Transaction.js";
|
|
7
8
|
/**
|
|
8
9
|
* This is the only public interface to this file.
|
|
9
10
|
*/
|
|
10
|
-
export declare function open(via: string, isolation?: Transaction.IsolationLevel): Transaction & Transaction.Finalization;
|
|
11
|
+
export declare function open(via: string, lifetime: Lifetime.Owner, isolation?: Transaction.IsolationLevel): Transaction & Transaction.Finalization;
|
|
11
12
|
//# sourceMappingURL=Tx.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tx.d.ts","sourceRoot":"","sources":["../../../src/transaction/Tx.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"Tx.d.ts","sourceRoot":"","sources":["../../../src/transaction/Tx.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAS7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAUpD;;GAEG;AACH,wBAAgB,IAAI,CAChB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,QAAQ,CAAC,KAAK,EACxB,SAAS,GAAE,WAAW,CAAC,cAAqB,GAC7C,WAAW,GAAG,WAAW,CAAC,YAAY,CAExC"}
|
|
@@ -3,6 +3,10 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
|
|
7
|
+
var __typeError = (msg) => {
|
|
8
|
+
throw TypeError(msg);
|
|
9
|
+
};
|
|
6
10
|
var __export = (target, all) => {
|
|
7
11
|
for (var name in all)
|
|
8
12
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -16,6 +20,47 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
20
|
return to;
|
|
17
21
|
};
|
|
18
22
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
23
|
+
var __using = (stack, value, async) => {
|
|
24
|
+
if (value != null) {
|
|
25
|
+
if (typeof value !== "object" && typeof value !== "function") __typeError("Object expected");
|
|
26
|
+
var dispose, inner;
|
|
27
|
+
if (async) dispose = value[__knownSymbol("asyncDispose")];
|
|
28
|
+
if (dispose === void 0) {
|
|
29
|
+
dispose = value[__knownSymbol("dispose")];
|
|
30
|
+
if (async) inner = dispose;
|
|
31
|
+
}
|
|
32
|
+
if (typeof dispose !== "function") __typeError("Object not disposable");
|
|
33
|
+
if (inner) dispose = function() {
|
|
34
|
+
try {
|
|
35
|
+
inner.call(this);
|
|
36
|
+
} catch (e) {
|
|
37
|
+
return Promise.reject(e);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
stack.push([async, dispose, value]);
|
|
41
|
+
} else if (async) {
|
|
42
|
+
stack.push([async]);
|
|
43
|
+
}
|
|
44
|
+
return value;
|
|
45
|
+
};
|
|
46
|
+
var __callDispose = (stack, error, hasError) => {
|
|
47
|
+
var E = typeof SuppressedError === "function" ? SuppressedError : function(e, s, m, _) {
|
|
48
|
+
return _ = Error(m), _.name = "SuppressedError", _.error = e, _.suppressed = s, _;
|
|
49
|
+
};
|
|
50
|
+
var fail = (e) => error = hasError ? new E(e, error, "An error was suppressed during disposal") : (hasError = true, e);
|
|
51
|
+
var next = (it) => {
|
|
52
|
+
while (it = stack.pop()) {
|
|
53
|
+
try {
|
|
54
|
+
var result = it[1] && it[1].call(it[2]);
|
|
55
|
+
if (it[0]) return Promise.resolve(result).then(next, (e) => (fail(e), next()));
|
|
56
|
+
} catch (e) {
|
|
57
|
+
fail(e);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (hasError) throw error;
|
|
61
|
+
};
|
|
62
|
+
return next();
|
|
63
|
+
};
|
|
19
64
|
var Tx_exports = {};
|
|
20
65
|
__export(Tx_exports, {
|
|
21
66
|
open: () => open
|
|
@@ -42,8 +87,8 @@ var import_Status = require("./Status.js");
|
|
|
42
87
|
const logger = import_Logger.Logger.get("Transaction");
|
|
43
88
|
const MAX_PRECOMMIT_CYCLES = 5;
|
|
44
89
|
const MAX_CHAINED_COMMITS = 5;
|
|
45
|
-
function open(via, isolation = "rw") {
|
|
46
|
-
return new Tx(via, isolation);
|
|
90
|
+
function open(via, lifetime, isolation = "rw") {
|
|
91
|
+
return new Tx(via, lifetime, isolation);
|
|
47
92
|
}
|
|
48
93
|
class Tx {
|
|
49
94
|
#isolation;
|
|
@@ -53,12 +98,28 @@ class Tx {
|
|
|
53
98
|
#status;
|
|
54
99
|
#waitingOn;
|
|
55
100
|
#via;
|
|
101
|
+
#lifetime;
|
|
56
102
|
#shared;
|
|
57
103
|
#closed;
|
|
58
104
|
#isAsync = false;
|
|
59
105
|
#reportingLocks = false;
|
|
60
|
-
constructor(via, isolation) {
|
|
106
|
+
constructor(via, lifetime, isolation) {
|
|
61
107
|
this.#via = import_Diagnostic.Diagnostic.via(via);
|
|
108
|
+
this.#lifetime = lifetime.join("tx", via);
|
|
109
|
+
Object.defineProperties(this.#lifetime.details, {
|
|
110
|
+
status: {
|
|
111
|
+
get: () => this.#status,
|
|
112
|
+
enumerable: true
|
|
113
|
+
},
|
|
114
|
+
resources: {
|
|
115
|
+
get: () => {
|
|
116
|
+
if (!this.#resources.size) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
return [...this.#resources].join("+");
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
});
|
|
62
123
|
this.#isolation = isolation;
|
|
63
124
|
if (isolation === "rw") {
|
|
64
125
|
this.#status = import_Status.Status.Shared;
|
|
@@ -67,9 +128,26 @@ class Tx {
|
|
|
67
128
|
}
|
|
68
129
|
}
|
|
69
130
|
[Symbol.dispose]() {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
131
|
+
var _stack = [];
|
|
132
|
+
try {
|
|
133
|
+
switch (this.status) {
|
|
134
|
+
case import_Status.Status.ReadOnly:
|
|
135
|
+
case import_Status.Status.Shared:
|
|
136
|
+
case import_Status.Status.Destroyed:
|
|
137
|
+
break;
|
|
138
|
+
default:
|
|
139
|
+
logger.error(this.via, "Disposed", this.via, "while", this.status);
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
const _closing = __using(_stack, this.#lifetime.closing());
|
|
143
|
+
this.#reset("dropped");
|
|
144
|
+
this.#status = import_Status.Status.Destroyed;
|
|
145
|
+
this.#closed?.emit();
|
|
146
|
+
} catch (_) {
|
|
147
|
+
var _error = _, _hasError = true;
|
|
148
|
+
} finally {
|
|
149
|
+
__callDispose(_stack, _error, _hasError);
|
|
150
|
+
}
|
|
73
151
|
}
|
|
74
152
|
get via() {
|
|
75
153
|
return this.#via;
|
|
@@ -215,6 +293,7 @@ class Tx {
|
|
|
215
293
|
return result;
|
|
216
294
|
}
|
|
217
295
|
resolve(result) {
|
|
296
|
+
this.#lifetime.closing();
|
|
218
297
|
if (import_Promises.MaybePromise.is(result)) {
|
|
219
298
|
this.isAsync = true;
|
|
220
299
|
return result.then(this.resolve.bind(this), this.reject.bind(this));
|
|
@@ -240,6 +319,7 @@ class Tx {
|
|
|
240
319
|
return this.#finalize(import_Status.Status.RollingBack, "rolled back", () => this.#executeRollback());
|
|
241
320
|
}
|
|
242
321
|
reject(cause) {
|
|
322
|
+
this.#lifetime.closing();
|
|
243
323
|
if (this.#status === import_Status.Status.Shared) {
|
|
244
324
|
try {
|
|
245
325
|
this.#reset("released");
|
|
@@ -270,6 +350,12 @@ class Tx {
|
|
|
270
350
|
this[Symbol.dispose]();
|
|
271
351
|
throw cause;
|
|
272
352
|
}
|
|
353
|
+
join(...name) {
|
|
354
|
+
if (this.#isolation === "ro") {
|
|
355
|
+
throw new import_MatterError.ReadOnlyError();
|
|
356
|
+
}
|
|
357
|
+
return this.#lifetime.join(...name);
|
|
358
|
+
}
|
|
273
359
|
/**
|
|
274
360
|
* Execute commit logic for a single commit cycle.
|
|
275
361
|
*
|