@phystack/hub-client 4.5.19-dev → 4.5.21-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +22 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +252 -378
- package/dist/index.js.map +1 -1
- package/dist/peripheral-twin.d.ts +34 -0
- package/dist/peripheral-twin.d.ts.map +1 -0
- package/dist/peripheral-twin.js +234 -0
- package/dist/peripheral-twin.js.map +1 -0
- package/dist/services/phyhub-connection.service.d.ts +1 -0
- package/dist/services/phyhub-connection.service.d.ts.map +1 -1
- package/dist/services/phyhub-connection.service.js +17 -0
- package/dist/services/phyhub-connection.service.js.map +1 -1
- package/dist/services/phyhub-direct-connection.service.d.ts +21 -0
- package/dist/services/phyhub-direct-connection.service.d.ts.map +1 -0
- package/dist/services/phyhub-direct-connection.service.js +101 -0
- package/dist/services/phyhub-direct-connection.service.js.map +1 -0
- package/dist/services/webrtc/data-channel-handler.d.ts +45 -0
- package/dist/services/webrtc/data-channel-handler.d.ts.map +1 -0
- package/dist/services/webrtc/data-channel-handler.js +260 -0
- package/dist/services/webrtc/data-channel-handler.js.map +1 -0
- package/dist/services/webrtc/index.d.ts +8 -0
- package/dist/services/webrtc/index.d.ts.map +1 -0
- package/dist/services/webrtc/index.js +18 -0
- package/dist/services/webrtc/index.js.map +1 -0
- package/dist/services/webrtc/media-stream-handler.d.ts +57 -0
- package/dist/services/webrtc/media-stream-handler.d.ts.map +1 -0
- package/dist/services/webrtc/media-stream-handler.js +383 -0
- package/dist/services/webrtc/media-stream-handler.js.map +1 -0
- package/dist/services/webrtc/peer-connection-manager.d.ts +40 -0
- package/dist/services/webrtc/peer-connection-manager.d.ts.map +1 -0
- package/dist/services/webrtc/peer-connection-manager.js +336 -0
- package/dist/services/webrtc/peer-connection-manager.js.map +1 -0
- package/dist/services/webrtc/types.d.ts +134 -0
- package/dist/services/webrtc/types.d.ts.map +1 -0
- package/dist/services/webrtc/types.js +12 -0
- package/dist/services/webrtc/types.js.map +1 -0
- package/dist/services/webrtc/webrtc-globals.d.ts +4 -0
- package/dist/services/webrtc/webrtc-globals.d.ts.map +1 -0
- package/dist/services/webrtc/webrtc-globals.js +72 -0
- package/dist/services/webrtc/webrtc-globals.js.map +1 -0
- package/dist/services/webrtc/webrtc-manager.d.ts +35 -0
- package/dist/services/webrtc/webrtc-manager.d.ts.map +1 -0
- package/dist/services/webrtc/webrtc-manager.js +274 -0
- package/dist/services/webrtc/webrtc-manager.js.map +1 -0
- package/dist/test/communication-comprehensive-test.d.ts +8 -0
- package/dist/test/communication-comprehensive-test.d.ts.map +1 -0
- package/dist/test/communication-comprehensive-test.js +356 -0
- package/dist/test/communication-comprehensive-test.js.map +1 -0
- package/dist/test/webrtc-channel-names-test.d.ts +2 -0
- package/dist/test/webrtc-channel-names-test.d.ts.map +1 -0
- package/dist/test/webrtc-channel-names-test.js +177 -0
- package/dist/test/webrtc-channel-names-test.js.map +1 -0
- package/dist/test/webrtc-comprehensive-test.d.ts +2 -0
- package/dist/test/webrtc-comprehensive-test.d.ts.map +1 -0
- package/dist/test/webrtc-comprehensive-test.js +328 -0
- package/dist/test/webrtc-comprehensive-test.js.map +1 -0
- package/dist/test/webrtc-reconnect-test.d.ts +4 -0
- package/dist/test/webrtc-reconnect-test.d.ts.map +1 -0
- package/dist/test/webrtc-reconnect-test.js +244 -0
- package/dist/test/webrtc-reconnect-test.js.map +1 -0
- package/dist/test/webrtc-test-harness.d.ts +4 -0
- package/dist/test/webrtc-test-harness.d.ts.map +1 -0
- package/dist/test/webrtc-test-harness.js +169 -0
- package/dist/test/webrtc-test-harness.js.map +1 -0
- package/dist/twin-messaging.d.ts +20 -0
- package/dist/twin-messaging.d.ts.map +1 -0
- package/dist/twin-messaging.js +94 -0
- package/dist/twin-messaging.js.map +1 -0
- package/dist/twin-registry.d.ts +9 -0
- package/dist/twin-registry.d.ts.map +1 -0
- package/dist/twin-registry.js +26 -0
- package/dist/twin-registry.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +20 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/twin.types.d.ts +62 -14
- package/dist/types/twin.types.d.ts.map +1 -1
- package/dist/types/twin.types.js +8 -1
- package/dist/types/twin.types.js.map +1 -1
- package/docs/webrtc-howto.md +398 -0
- package/docs/webrtc-test.md +330 -0
- package/package.json +3 -3
- package/scripts/webrtc-test.sh +401 -0
- package/src/index.ts +378 -568
- package/src/peripheral-twin.ts +337 -0
- package/src/services/phyhub-connection.service.ts +24 -0
- package/src/services/phyhub-direct-connection.service.ts +159 -0
- package/src/services/webrtc/data-channel-handler.ts +362 -0
- package/src/services/webrtc/index.ts +36 -0
- package/src/services/webrtc/media-stream-handler.ts +536 -0
- package/src/services/webrtc/peer-connection-manager.ts +467 -0
- package/src/services/webrtc/types.ts +273 -0
- package/src/services/webrtc/webrtc-globals.ts +108 -0
- package/src/services/webrtc/webrtc-manager.ts +490 -0
- package/src/test/communication-comprehensive-test.ts +533 -0
- package/src/test/webrtc-channel-names-test.ts +266 -0
- package/src/test/webrtc-comprehensive-test.ts +494 -0
- package/src/test/webrtc-reconnect-test.ts +345 -0
- package/src/test/webrtc-test-harness.ts +254 -0
- package/src/twin-messaging.ts +184 -0
- package/src/twin-registry.ts +39 -0
- package/src/types/index.ts +3 -0
- package/src/types/twin.types.ts +80 -14
- package/dist/services/webrtc/datachannel.d.ts +0 -10
- package/dist/services/webrtc/datachannel.d.ts.map +0 -1
- package/dist/services/webrtc/datachannel.js +0 -290
- package/dist/services/webrtc/datachannel.js.map +0 -1
- package/dist/services/webrtc/mediastream.d.ts +0 -10
- package/dist/services/webrtc/mediastream.d.ts.map +0 -1
- package/dist/services/webrtc/mediastream.js +0 -396
- package/dist/services/webrtc/mediastream.js.map +0 -1
- package/dist/services/webrtc/peer-connection-ice.d.ts +0 -32
- package/dist/services/webrtc/peer-connection-ice.d.ts.map +0 -1
- package/dist/services/webrtc/peer-connection-ice.js +0 -483
- package/dist/services/webrtc/peer-connection-ice.js.map +0 -1
- package/src/services/webrtc/datachannel.ts +0 -421
- package/src/services/webrtc/mediastream.ts +0 -602
- package/src/services/webrtc/peer-connection-ice.ts +0 -689
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"communication-comprehensive-test.js","sourceRoot":"","sources":["../../src/test/communication-comprehensive-test.ts"],"names":[],"mappings":";;AAohBS,gCAAU;AAAE,kCAAW;AAAE,wDAAsB;AAAE,oDAAoB;AAAE,8DAAyB;AA/ezG,oCAAkD;AAUlD,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,OAAO,GAAiB,EAAE,CAAC;AAEjC,SAAS,GAAG,CAAC,GAAW;IACtB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,MAAe,EAAE,OAAe,EAAE,SAAiB;IAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC;IACtE,GAAG,CAAC,IAAI,MAAM,KAAK,IAAI,KAAK,OAAO,KAAK,QAAQ,KAAK,CAAC,CAAC;AACzD,CAAC;AAKD,KAAK,UAAU,UAAU,CACvB,MAAoB,EACpB,QAAkB,EAClB,UAAkB,EAClB,WAAoB;IAEpB,MAAM,QAAQ,GAAG,oBAAoB,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,GAAG,CAAC,iBAAiB,QAAQ,MAAM,CAAC,CAAC;IAErC,IAAI,CAAC;QACH,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,MAAM,gBAAgB,GAAU,EAAE,CAAC;QAGnC,MAAM,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACvC,GAAG,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;QAG9C,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAAS,EAAE,EAAE;YACtC,aAAa,EAAE,CAAC;YAChB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,GAAG,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,IAAI,WAAW,EAAE,CAAC;YAEhB,GAAG,CAAC,8CAA8C,CAAC,CAAC;YACpD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAGlB,GAAG,CAAC,wBAAwB,CAAC,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACxE,GAAG,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAEpD,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBACtD,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;YAGD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAGlB,MAAM,MAAM,GAAG,aAAa,IAAI,iBAAiB,CAAC;YAClD,SAAS,CAAC,QAAQ,EAAE,MAAM,EACxB,QAAQ,iBAAiB,sBAAsB,aAAa,EAAE,EAAE,SAAS,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YAEN,GAAG,CAAC,sCAAsC,CAAC,CAAC;YAG5C,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAAS,EAAE,EAAE;gBAEtC,MAAM,QAAQ,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC/D,GAAG,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACnD,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YAGH,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;YAEnB,MAAM,MAAM,GAAG,aAAa,IAAI,iBAAiB,CAAC;YAClD,SAAS,CAAC,QAAQ,EAAE,MAAM,EACxB,YAAY,aAAa,wBAAwB,EAAE,SAAS,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAKD,KAAK,UAAU,WAAW,CACxB,OAAqB,EACrB,QAAkB,EAClB,UAAkB,EAClB,WAAoB;IAEpB,MAAM,QAAQ,GAAG,qBAAqB,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,GAAG,CAAC,iBAAiB,QAAQ,MAAM,CAAC,CAAC;IAErC,IAAI,CAAC;QACH,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,IAAI,WAAW,EAAE,CAAC;YAEhB,GAAG,CAAC,oDAAoD,CAAC,CAAC;YAC1D,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAGlB,GAAG,CAAC,0EAA0E,CAAC,CAAC;YAChF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,UAAU,GAAG,aAAa,CAAC;gBACjC,MAAM,aAAa,GAAG;oBACpB,OAAO,EAAE,SAAS;oBAClB,KAAK,EAAE,CAAC,GAAG,EAAE;oBACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC;gBAEF,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAEjF,IAAI,CAAC;oBAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBACvF,GAAG,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACnD,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,MAAK,SAAS,EAAE,CAAC;wBACjC,iBAAiB,EAAE,CAAC;oBACtB,CAAC;yBAAM,CAAC;wBACN,aAAa,EAAE,CAAC;oBAClB,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,GAAG,CAAC,kBAAkB,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC5D,aAAa,EAAE,CAAC;gBAClB,CAAC;gBAED,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;YAED,MAAM,MAAM,GAAG,iBAAiB,IAAI,iBAAiB,CAAC;YACtD,SAAS,CAAC,QAAQ,EAAE,MAAM,EACxB,YAAY,iBAAiB,aAAa,aAAa,EAAE,EAAE,SAAS,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YAEN,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAGxD,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,OAAY,EAAE,OAA+B,EAAE,EAAE;gBAC3E,GAAG,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAErD,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,gCAAgC,EAAE,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC,CAAC,CAAC;YAGH,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;YAEnB,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,0CAA0C,EAAE,SAAS,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAKD,KAAK,UAAU,sBAAsB,CACnC,MAAoB,EACpB,UAAkB,EAClB,WAAoB;IAEpB,MAAM,QAAQ,GAAG,2BAA2B,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,GAAG,CAAC,iBAAiB,QAAQ,MAAM,CAAC,CAAC;IAErC,IAAI,CAAC;QACH,IAAI,OAA2B,CAAC;QAChC,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAClD,GAAG,CAAC,kCAAkC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAElE,IAAI,OAAO,CAAC,cAAc,EAAE,KAAK,SAAS,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;YACxF,CAAC;YAED,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzB,aAAa,EAAE,CAAC;gBAChB,GAAG,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC/D,GAAG,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;YAED,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAElB,SAAS,CAAC,QAAQ,EAAE,aAAa,IAAI,iBAAiB,EACpD,QAAQ,iBAAiB,sBAAsB,aAAa,EAAE,EAAE,SAAS,CAAC,CAAC;YAE7E,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAEtE,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;oBACtC,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,mCAAmC,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;oBAE9D,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;wBACpB,aAAa,EAAE,CAAC;wBAChB,GAAG,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC7C,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC1B,CAAC,CAAC,CAAC;oBAEH,UAAU,CAAC,GAAG,EAAE;wBACd,SAAS,CAAC,QAAQ,EAAE,aAAa,IAAI,iBAAiB,EACpD,YAAY,aAAa,WAAW,EAAE,SAAS,CAAC,CAAC;wBACnD,OAAO,EAAE,CAAC;oBACZ,CAAC,EAAE,IAAI,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAKD,KAAK,UAAU,oBAAoB,CACjC,MAAoB,EACpB,UAAkB,EAClB,WAAoB;IAEpB,MAAM,QAAQ,GAAG,yBAAyB,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,GAAG,CAAC,iBAAiB,QAAQ,MAAM,CAAC,CAAC;IAErC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,iBAAiB,GAAwB,IAAI,GAAG,EAAE,CAAC;IAEzD,IAAI,CAAC;QACH,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,QAAQ,GAAyB,EAAE,CAAC;YAE1C,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACzD,GAAG,CAAC,oBAAoB,IAAI,qBAAqB,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBAExE,IAAI,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC;oBACjC,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,WAAW,EAAE,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;gBACnF,CAAC;gBAED,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC/B,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE;oBAChB,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC;YAED,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC9C,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;YAED,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAElB,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/C,IAAI,KAAK,GAAG,iBAAiB;oBAAE,SAAS,GAAG,KAAK,CAAC;YACnD,CAAC;YAED,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrF,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAEnD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC9E,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAClF,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAE/B,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;oBACtC,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,GAAG,CAAC,qBAAqB,IAAI,gBAAgB,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;oBAEpE,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;wBACpB,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;wBACpE,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC1B,CAAC,CAAC,CAAC;oBAEH,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC7B,CAAC,EAAE,IAAI,CAAC,CAAC;YACX,CAAC,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAE5B,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrF,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC;YAChG,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAKD,KAAK,UAAU,yBAAyB,CACtC,MAAoB,EACpB,UAAkB,EAClB,WAAoB;IAEpB,MAAM,QAAQ,GAAG,mBAAmB,CAAC;IACrC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,GAAG,CAAC,iBAAiB,QAAQ,MAAM,CAAC,CAAC;IAErC,IAAI,CAAC;QACH,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAClE,GAAG,CAAC,gCAAgC,MAAM,CAAC,eAAe,EAAE,cAAc,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAErG,IAAI,MAAM,CAAC,cAAc,EAAE,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;YACvF,CAAC;YAED,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvB,GAAG,CAAC,mBAAmB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAElB,SAAS,CAAC,QAAQ,EAAE,IAAI,EACtB,gBAAgB,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;YAEzD,KAAK,EAAE,CAAC;QACV,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAEtE,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE;oBAC1C,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,GAAG,CAAC,kCAAkC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;oBAEjE,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;wBACvB,GAAG,CAAC,mBAAmB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBACvC,CAAC,CAAC,CAAC;oBAEH,UAAU,CAAC,GAAG,EAAE;wBACd,SAAS,CAAC,QAAQ,EAAE,IAAI,EACtB,kBAAkB,MAAM,CAAC,eAAe,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;wBAC3D,OAAO,EAAE,CAAC;oBACZ,CAAC,EAAE,IAAI,CAAC,CAAC;gBACX,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAKD,KAAK,UAAU,IAAI;;IACjB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,IAAI,0CAAE,WAAW,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAEpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,KAAK,WAAW,CAAC;IACzC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACrB,GAAG,CAAC,iBAAiB,UAAU,EAAE,CAAC,CAAC;IACnC,IAAI,UAAU;QAAE,GAAG,CAAC,iBAAiB,UAAU,EAAE,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,oBAAY,CAAC,OAAO,EAAE,CAAC;QAC5C,GAAG,CAAC,YAAY,CAAC,CAAC;QAElB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5C,GAAG,CAAC,gBAAgB,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;QAUrC,MAAM,KAAK,GAAsE;YAC/E,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,UAA0B,EAAE,aAAa,EAAE,IAAI,EAAE;YACvE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,WAA2B,EAAE,aAAa,EAAE,IAAI,EAAE;YACzE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,sBAAsC,EAAE,aAAa,EAAE,KAAK,EAAE;YACzF,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,oBAAoC,EAAE,aAAa,EAAE,KAAK,EAAE;YAC7F,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,yBAAyC,EAAE,aAAa,EAAE,KAAK,EAAE;SAC7F,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC5C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;gBAC3D,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAGD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5B,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;YACvE,IAAI,CAAC,CAAC,MAAM;gBAAE,MAAM,EAAE,CAAC;;gBAClB,MAAM,EAAE,CAAC;QAChB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,YAAY,MAAM,YAAY,SAAS,KAAK,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAG5B,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QAElB,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC;AACT,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webrtc-channel-names-test.d.ts","sourceRoot":"","sources":["../../src/test/webrtc-channel-names-test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const index_1 = require("../index");
|
|
4
|
+
const CHANNEL_NAMES = [undefined, 'control', 'data', 'telemetry'];
|
|
5
|
+
const MESSAGES_PER_CHANNEL = 3;
|
|
6
|
+
async function runInitiator(peerTwinId) {
|
|
7
|
+
console.log('\n=== Running as INITIATOR ===\n');
|
|
8
|
+
const client = await index_1.PhyHubClient.connect();
|
|
9
|
+
console.log('Connected to PhyHub!\n');
|
|
10
|
+
const results = [];
|
|
11
|
+
const channels = new Map();
|
|
12
|
+
const receivedCounts = new Map();
|
|
13
|
+
for (const channelName of CHANNEL_NAMES) {
|
|
14
|
+
const displayName = channelName !== null && channelName !== void 0 ? channelName : 'default';
|
|
15
|
+
console.log(`\n--- Creating channel: "${displayName}" ---`);
|
|
16
|
+
try {
|
|
17
|
+
const channel = await client.getDataChannel(peerTwinId, channelName);
|
|
18
|
+
console.log(`Channel "${displayName}" created. Label: ${channel.getChannelName()}`);
|
|
19
|
+
const expectedName = channelName !== null && channelName !== void 0 ? channelName : 'default';
|
|
20
|
+
if (channel.getChannelName() !== expectedName) {
|
|
21
|
+
console.error(`ERROR: Expected channel name "${expectedName}", got "${channel.getChannelName()}"`);
|
|
22
|
+
}
|
|
23
|
+
channels.set(displayName, channel);
|
|
24
|
+
receivedCounts.set(displayName, 0);
|
|
25
|
+
channel.onMessage((data) => {
|
|
26
|
+
console.log(`[${displayName}] RECEIVED:`, data);
|
|
27
|
+
receivedCounts.set(displayName, (receivedCounts.get(displayName) || 0) + 1);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
console.error(`Failed to create channel "${displayName}":`, error);
|
|
32
|
+
results.push({ channel: displayName, sent: 0, received: 0, passed: false });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
console.log('\nWaiting 3 seconds for responder to set up...');
|
|
36
|
+
await sleep(3000);
|
|
37
|
+
console.log('\n--- Sending messages ---\n');
|
|
38
|
+
for (const [displayName, channel] of channels) {
|
|
39
|
+
if (!channel.isOpen()) {
|
|
40
|
+
console.log(`Channel "${displayName}" not open, skipping...`);
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
for (let i = 1; i <= MESSAGES_PER_CHANNEL; i++) {
|
|
44
|
+
const msg = {
|
|
45
|
+
channel: displayName,
|
|
46
|
+
messageNum: i,
|
|
47
|
+
from: 'initiator',
|
|
48
|
+
timestamp: Date.now(),
|
|
49
|
+
};
|
|
50
|
+
console.log(`[${displayName}] SENDING:`, msg);
|
|
51
|
+
channel.send(msg);
|
|
52
|
+
await sleep(200);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
console.log('\nWaiting 5 seconds for responses...');
|
|
56
|
+
await sleep(5000);
|
|
57
|
+
console.log('\n--- Test Results ---\n');
|
|
58
|
+
for (const [displayName] of channels) {
|
|
59
|
+
const received = receivedCounts.get(displayName) || 0;
|
|
60
|
+
const passed = received >= MESSAGES_PER_CHANNEL;
|
|
61
|
+
results.push({
|
|
62
|
+
channel: displayName,
|
|
63
|
+
sent: MESSAGES_PER_CHANNEL,
|
|
64
|
+
received,
|
|
65
|
+
passed,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
console.log('Channel'.padEnd(15) + 'Sent'.padEnd(8) + 'Received'.padEnd(10) + 'Status');
|
|
69
|
+
console.log('-'.repeat(45));
|
|
70
|
+
for (const result of results) {
|
|
71
|
+
const status = result.passed ? '✅ PASS' : '❌ FAIL';
|
|
72
|
+
console.log(result.channel.padEnd(15) +
|
|
73
|
+
result.sent.toString().padEnd(8) +
|
|
74
|
+
result.received.toString().padEnd(10) +
|
|
75
|
+
status);
|
|
76
|
+
}
|
|
77
|
+
const allPassed = results.every((r) => r.passed);
|
|
78
|
+
console.log('\n' + '='.repeat(45));
|
|
79
|
+
console.log(allPassed ? '✅ ALL TESTS PASSED' : '❌ SOME TESTS FAILED');
|
|
80
|
+
for (const channel of channels.values()) {
|
|
81
|
+
channel.close();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async function runResponder(peerTwinId) {
|
|
85
|
+
console.log('\n=== Running as RESPONDER ===\n');
|
|
86
|
+
const client = await index_1.PhyHubClient.connect();
|
|
87
|
+
console.log('Connected to PhyHub!\n');
|
|
88
|
+
const channels = new Map();
|
|
89
|
+
const receivedCounts = new Map();
|
|
90
|
+
let channelsReceived = 0;
|
|
91
|
+
return new Promise((resolve, reject) => {
|
|
92
|
+
const timeout = setTimeout(() => {
|
|
93
|
+
reject(new Error('Timeout waiting for channels (60s)'));
|
|
94
|
+
}, 60000);
|
|
95
|
+
for (const channelName of CHANNEL_NAMES) {
|
|
96
|
+
const displayName = channelName !== null && channelName !== void 0 ? channelName : 'default';
|
|
97
|
+
console.log(`Waiting for channel: "${displayName}"`);
|
|
98
|
+
client.onDataChannel(peerTwinId, (channel) => {
|
|
99
|
+
console.log(`\n[${displayName}] Channel received! Label: ${channel.getChannelName()}`);
|
|
100
|
+
channels.set(displayName, channel);
|
|
101
|
+
receivedCounts.set(displayName, 0);
|
|
102
|
+
channelsReceived++;
|
|
103
|
+
channel.onMessage((data) => {
|
|
104
|
+
console.log(`[${displayName}] RECEIVED:`, data);
|
|
105
|
+
receivedCounts.set(displayName, (receivedCounts.get(displayName) || 0) + 1);
|
|
106
|
+
const response = {
|
|
107
|
+
channel: displayName,
|
|
108
|
+
type: 'echo',
|
|
109
|
+
originalMessage: data.messageNum,
|
|
110
|
+
from: 'responder',
|
|
111
|
+
timestamp: Date.now(),
|
|
112
|
+
};
|
|
113
|
+
console.log(`[${displayName}] SENDING:`, response);
|
|
114
|
+
channel.send(response);
|
|
115
|
+
});
|
|
116
|
+
channel.onClose(() => {
|
|
117
|
+
console.log(`[${displayName}] Channel closed`);
|
|
118
|
+
const openChannels = Array.from(channels.values()).filter((c) => c.isOpen());
|
|
119
|
+
if (openChannels.length === 0 && channelsReceived === CHANNEL_NAMES.length) {
|
|
120
|
+
clearTimeout(timeout);
|
|
121
|
+
console.log('\n--- Responder Summary ---\n');
|
|
122
|
+
console.log('Channel'.padEnd(15) + 'Messages Received');
|
|
123
|
+
console.log('-'.repeat(35));
|
|
124
|
+
for (const [name, count] of receivedCounts) {
|
|
125
|
+
console.log(name.padEnd(15) + count.toString());
|
|
126
|
+
}
|
|
127
|
+
resolve();
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}, channelName);
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
function sleep(ms) {
|
|
135
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
136
|
+
}
|
|
137
|
+
async function main() {
|
|
138
|
+
var _a;
|
|
139
|
+
console.log('='.repeat(60));
|
|
140
|
+
console.log('WebRTC Named Channels Test');
|
|
141
|
+
console.log('='.repeat(60));
|
|
142
|
+
if (process.env.PHYHUB_DIRECT !== 'true') {
|
|
143
|
+
console.error('ERROR: Set PHYHUB_DIRECT=true');
|
|
144
|
+
process.exit(1);
|
|
145
|
+
}
|
|
146
|
+
const peerTwinId = process.env.PEER_TWIN_ID;
|
|
147
|
+
const role = (_a = process.env.ROLE) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
|
148
|
+
if (!peerTwinId) {
|
|
149
|
+
console.error('ERROR: Set PEER_TWIN_ID');
|
|
150
|
+
process.exit(1);
|
|
151
|
+
}
|
|
152
|
+
if (role !== 'initiator' && role !== 'responder') {
|
|
153
|
+
console.error('ERROR: Set ROLE to initiator or responder');
|
|
154
|
+
process.exit(1);
|
|
155
|
+
}
|
|
156
|
+
console.log(`\nRole: ${role}`);
|
|
157
|
+
console.log(`Peer Twin ID: ${peerTwinId}`);
|
|
158
|
+
console.log(`Channels to test: ${CHANNEL_NAMES.map((n) => n !== null && n !== void 0 ? n : 'default').join(', ')}`);
|
|
159
|
+
try {
|
|
160
|
+
if (role === 'initiator') {
|
|
161
|
+
await runInitiator(peerTwinId);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
await runResponder(peerTwinId);
|
|
165
|
+
}
|
|
166
|
+
console.log('\n[SUCCESS] Test completed!');
|
|
167
|
+
process.exit(0);
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
console.error('\n[FAILED]', error);
|
|
171
|
+
process.exit(1);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (require.main === module) {
|
|
175
|
+
main();
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=webrtc-channel-names-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webrtc-channel-names-test.js","sourceRoot":"","sources":["../../src/test/webrtc-channel-names-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webrtc-comprehensive-test.d.ts","sourceRoot":"","sources":["../../src/test/webrtc-comprehensive-test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const index_1 = require("../index");
|
|
4
|
+
const MESSAGES_PER_TEST = 3;
|
|
5
|
+
const results = [];
|
|
6
|
+
function log(msg) {
|
|
7
|
+
console.log(`[${new Date().toISOString().split('T')[1].slice(0, 8)}] ${msg}`);
|
|
8
|
+
}
|
|
9
|
+
function sleep(ms) {
|
|
10
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
11
|
+
}
|
|
12
|
+
function addResult(name, passed, details) {
|
|
13
|
+
results.push({ name, passed, details });
|
|
14
|
+
const status = passed ? '\x1b[32mPASS\x1b[0m' : '\x1b[31mFAIL\x1b[0m';
|
|
15
|
+
log(`[${status}] ${name}: ${details}`);
|
|
16
|
+
}
|
|
17
|
+
async function testDataChannelDefault(client, peerTwinId, isInitiator) {
|
|
18
|
+
log('\n=== Test 1: DataChannel Default ===');
|
|
19
|
+
try {
|
|
20
|
+
let channel;
|
|
21
|
+
let receivedCount = 0;
|
|
22
|
+
if (isInitiator) {
|
|
23
|
+
channel = await client.getDataChannel(peerTwinId);
|
|
24
|
+
log(`Created default channel. Name: ${channel.getChannelName()}`);
|
|
25
|
+
if (channel.getChannelName() !== 'default') {
|
|
26
|
+
throw new Error(`Expected channel name 'default', got '${channel.getChannelName()}'`);
|
|
27
|
+
}
|
|
28
|
+
channel.onMessage(() => receivedCount++);
|
|
29
|
+
await sleep(2000);
|
|
30
|
+
for (let i = 0; i < MESSAGES_PER_TEST; i++) {
|
|
31
|
+
channel.send({ test: 'default', num: i });
|
|
32
|
+
await sleep(200);
|
|
33
|
+
}
|
|
34
|
+
await sleep(2000);
|
|
35
|
+
addResult('DataChannel Default', receivedCount >= MESSAGES_PER_TEST, `Sent ${MESSAGES_PER_TEST}, received ${receivedCount}`);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
await new Promise((resolve, reject) => {
|
|
39
|
+
const timeout = setTimeout(() => reject(new Error('Timeout')), 30000);
|
|
40
|
+
client.onDataChannel(peerTwinId, (ch) => {
|
|
41
|
+
clearTimeout(timeout);
|
|
42
|
+
channel = ch;
|
|
43
|
+
log(`Received default channel. Name: ${ch.getChannelName()}`);
|
|
44
|
+
ch.onMessage((data) => {
|
|
45
|
+
receivedCount++;
|
|
46
|
+
ch.send({ echo: data });
|
|
47
|
+
});
|
|
48
|
+
setTimeout(() => {
|
|
49
|
+
addResult('DataChannel Default', receivedCount >= MESSAGES_PER_TEST, `Received ${receivedCount} messages`);
|
|
50
|
+
resolve();
|
|
51
|
+
}, 8000);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
addResult('DataChannel Default', false, error.message);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async function testDataChannelNamed(client, peerTwinId, isInitiator) {
|
|
61
|
+
log('\n=== Test 2: DataChannel Named Channels ===');
|
|
62
|
+
const channelNames = ['control', 'data', 'telemetry'];
|
|
63
|
+
const receivedByChannel = new Map();
|
|
64
|
+
try {
|
|
65
|
+
if (isInitiator) {
|
|
66
|
+
const channels = [];
|
|
67
|
+
for (const name of channelNames) {
|
|
68
|
+
const ch = await client.getDataChannel(peerTwinId, name);
|
|
69
|
+
log(`Created channel '${name}'. Reported name: ${ch.getChannelName()}`);
|
|
70
|
+
if (ch.getChannelName() !== name) {
|
|
71
|
+
throw new Error(`Expected channel name '${name}', got '${ch.getChannelName()}'`);
|
|
72
|
+
}
|
|
73
|
+
receivedByChannel.set(name, 0);
|
|
74
|
+
ch.onMessage(() => {
|
|
75
|
+
receivedByChannel.set(name, (receivedByChannel.get(name) || 0) + 1);
|
|
76
|
+
});
|
|
77
|
+
channels.push(ch);
|
|
78
|
+
}
|
|
79
|
+
await sleep(3000);
|
|
80
|
+
for (let i = 0; i < channels.length; i++) {
|
|
81
|
+
const ch = channels[i];
|
|
82
|
+
for (let j = 0; j < MESSAGES_PER_TEST; j++) {
|
|
83
|
+
ch.send({ channel: channelNames[i], num: j });
|
|
84
|
+
await sleep(100);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
await sleep(3000);
|
|
88
|
+
let allPassed = true;
|
|
89
|
+
for (const name of channelNames) {
|
|
90
|
+
const count = receivedByChannel.get(name) || 0;
|
|
91
|
+
if (count < MESSAGES_PER_TEST)
|
|
92
|
+
allPassed = false;
|
|
93
|
+
}
|
|
94
|
+
const details = channelNames.map(n => `${n}:${receivedByChannel.get(n)}`).join(', ');
|
|
95
|
+
addResult('DataChannel Named', allPassed, details);
|
|
96
|
+
channels.forEach(ch => ch.close());
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
const promises = channelNames.map(name => new Promise((resolve, reject) => {
|
|
100
|
+
const timeout = setTimeout(() => reject(new Error(`Timeout for ${name}`)), 30000);
|
|
101
|
+
receivedByChannel.set(name, 0);
|
|
102
|
+
client.onDataChannel(peerTwinId, (ch) => {
|
|
103
|
+
clearTimeout(timeout);
|
|
104
|
+
log(`Received channel '${name}'. Reported: ${ch.getChannelName()}`);
|
|
105
|
+
ch.onMessage((data) => {
|
|
106
|
+
receivedByChannel.set(name, (receivedByChannel.get(name) || 0) + 1);
|
|
107
|
+
ch.send({ echo: data });
|
|
108
|
+
});
|
|
109
|
+
setTimeout(resolve, 10000);
|
|
110
|
+
}, name);
|
|
111
|
+
}));
|
|
112
|
+
await Promise.all(promises);
|
|
113
|
+
const details = channelNames.map(n => `${n}:${receivedByChannel.get(n)}`).join(', ');
|
|
114
|
+
const allPassed = channelNames.every(n => (receivedByChannel.get(n) || 0) >= MESSAGES_PER_TEST);
|
|
115
|
+
addResult('DataChannel Named', allPassed, details);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
addResult('DataChannel Named', false, error.message);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async function testDataChannelReconnection(client, peerTwinId, isInitiator) {
|
|
123
|
+
log('\n=== Test 3: DataChannel Reconnection ===');
|
|
124
|
+
try {
|
|
125
|
+
const manager = await client.getWebRTCManager({ verbose: true });
|
|
126
|
+
let reconnectDetected = false;
|
|
127
|
+
let messagesAfterReconnect = 0;
|
|
128
|
+
let channel;
|
|
129
|
+
manager.on('reconnecting', () => {
|
|
130
|
+
log('[EVENT] Reconnecting...');
|
|
131
|
+
});
|
|
132
|
+
manager.on('reconnected', () => {
|
|
133
|
+
log('[EVENT] Reconnected!');
|
|
134
|
+
reconnectDetected = true;
|
|
135
|
+
});
|
|
136
|
+
if (isInitiator) {
|
|
137
|
+
channel = await client.getDataChannel(peerTwinId, 'reconnect-test');
|
|
138
|
+
log('Channel created for reconnect test');
|
|
139
|
+
channel.onMessage(() => messagesAfterReconnect++);
|
|
140
|
+
for (let i = 0; i < 3; i++) {
|
|
141
|
+
channel.send({ phase: 'before', num: i });
|
|
142
|
+
await sleep(200);
|
|
143
|
+
}
|
|
144
|
+
log('Waiting 5s before simulating disconnect...');
|
|
145
|
+
await sleep(5000);
|
|
146
|
+
channel.send({ command: 'simulate-disconnect' });
|
|
147
|
+
log('Waiting 15s for reconnection...');
|
|
148
|
+
await sleep(15000);
|
|
149
|
+
for (let i = 0; i < MESSAGES_PER_TEST; i++) {
|
|
150
|
+
channel.send({ phase: 'after', num: i });
|
|
151
|
+
await sleep(200);
|
|
152
|
+
}
|
|
153
|
+
await sleep(3000);
|
|
154
|
+
const passed = messagesAfterReconnect >= MESSAGES_PER_TEST;
|
|
155
|
+
addResult('DataChannel Reconnection', passed, `Reconnect detected: ${reconnectDetected}, messages after: ${messagesAfterReconnect}`);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
await new Promise((resolve, reject) => {
|
|
159
|
+
const timeout = setTimeout(() => reject(new Error('Timeout')), 60000);
|
|
160
|
+
client.onDataChannel(peerTwinId, (ch) => {
|
|
161
|
+
clearTimeout(timeout);
|
|
162
|
+
channel = ch;
|
|
163
|
+
log('Reconnect test channel received');
|
|
164
|
+
ch.onMessage((data) => {
|
|
165
|
+
messagesAfterReconnect++;
|
|
166
|
+
ch.send({ echo: data });
|
|
167
|
+
if (data.command === 'simulate-disconnect') {
|
|
168
|
+
log('Simulating disconnect...');
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
setTimeout(() => {
|
|
172
|
+
addResult('DataChannel Reconnection', messagesAfterReconnect > 0, `Received ${messagesAfterReconnect} total messages`);
|
|
173
|
+
resolve();
|
|
174
|
+
}, 30000);
|
|
175
|
+
}, 'reconnect-test');
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
addResult('DataChannel Reconnection', false, error.message);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
async function testMediaStreamConnection(client, peerTwinId, isInitiator) {
|
|
184
|
+
log('\n=== Test 4: MediaStream Connection ===');
|
|
185
|
+
try {
|
|
186
|
+
if (isInitiator) {
|
|
187
|
+
const { stream, close } = await client.getMediaStream(peerTwinId);
|
|
188
|
+
log(`MediaStream created. Target: ${stream.getTargetTwinId()}, Channel: ${stream.getChannelName()}`);
|
|
189
|
+
if (stream.getChannelName() !== 'default') {
|
|
190
|
+
throw new Error(`Expected channel name 'default', got '${stream.getChannelName()}'`);
|
|
191
|
+
}
|
|
192
|
+
stream.onTrack((track) => {
|
|
193
|
+
log(`Received track: ${track.kind}`);
|
|
194
|
+
});
|
|
195
|
+
await sleep(5000);
|
|
196
|
+
addResult('MediaStream Connection', true, `Connected to ${stream.getTargetTwinId()}`);
|
|
197
|
+
close();
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
await new Promise((resolve, reject) => {
|
|
201
|
+
const timeout = setTimeout(() => reject(new Error('Timeout')), 30000);
|
|
202
|
+
client.onMediaStream(peerTwinId, (stream) => {
|
|
203
|
+
clearTimeout(timeout);
|
|
204
|
+
log(`MediaStream received. Channel: ${stream.getChannelName()}`);
|
|
205
|
+
stream.onTrack((track) => {
|
|
206
|
+
log(`Track received: ${track.kind}`);
|
|
207
|
+
});
|
|
208
|
+
setTimeout(() => {
|
|
209
|
+
addResult('MediaStream Connection', true, `Connected from ${stream.getTargetTwinId()}`);
|
|
210
|
+
resolve();
|
|
211
|
+
}, 5000);
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
addResult('MediaStream Connection', false, error.message);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
async function testMediaStreamNamed(client, peerTwinId, isInitiator) {
|
|
221
|
+
log('\n=== Test 5: MediaStream Named Channels ===');
|
|
222
|
+
const channelNames = ['video', 'audio'];
|
|
223
|
+
try {
|
|
224
|
+
if (isInitiator) {
|
|
225
|
+
const streams = [];
|
|
226
|
+
for (const name of channelNames) {
|
|
227
|
+
const result = await client.getMediaStream(peerTwinId, { channelName: name });
|
|
228
|
+
log(`Created MediaStream '${name}'. Reported: ${result.stream.getChannelName()}`);
|
|
229
|
+
if (result.stream.getChannelName() !== name) {
|
|
230
|
+
throw new Error(`Expected '${name}', got '${result.stream.getChannelName()}'`);
|
|
231
|
+
}
|
|
232
|
+
streams.push(result);
|
|
233
|
+
}
|
|
234
|
+
await sleep(5000);
|
|
235
|
+
addResult('MediaStream Named', true, `Created ${channelNames.length} named streams`);
|
|
236
|
+
streams.forEach(s => s.close());
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
const receivedChannels = [];
|
|
240
|
+
const promises = channelNames.map(name => new Promise((resolve, reject) => {
|
|
241
|
+
const timeout = setTimeout(() => reject(new Error(`Timeout for ${name}`)), 30000);
|
|
242
|
+
client.onMediaStream(peerTwinId, (stream) => {
|
|
243
|
+
clearTimeout(timeout);
|
|
244
|
+
log(`Received MediaStream '${name}'. Reported: ${stream.getChannelName()}`);
|
|
245
|
+
receivedChannels.push(stream.getChannelName());
|
|
246
|
+
setTimeout(resolve, 3000);
|
|
247
|
+
}, { channelName: name });
|
|
248
|
+
}));
|
|
249
|
+
await Promise.all(promises);
|
|
250
|
+
const passed = receivedChannels.length === channelNames.length;
|
|
251
|
+
addResult('MediaStream Named', passed, `Received channels: ${receivedChannels.join(', ')}`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
addResult('MediaStream Named', false, error.message);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
async function main() {
|
|
259
|
+
var _a;
|
|
260
|
+
console.log('='.repeat(60));
|
|
261
|
+
console.log('WebRTC Comprehensive Test Suite');
|
|
262
|
+
console.log('='.repeat(60));
|
|
263
|
+
if (process.env.PHYHUB_DIRECT !== 'true') {
|
|
264
|
+
console.error('ERROR: Set PHYHUB_DIRECT=true');
|
|
265
|
+
process.exit(1);
|
|
266
|
+
}
|
|
267
|
+
const peerTwinId = process.env.PEER_TWIN_ID;
|
|
268
|
+
const role = (_a = process.env.ROLE) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
|
269
|
+
const testFilter = process.env.TEST;
|
|
270
|
+
if (!peerTwinId) {
|
|
271
|
+
console.error('ERROR: Set PEER_TWIN_ID');
|
|
272
|
+
process.exit(1);
|
|
273
|
+
}
|
|
274
|
+
if (role !== 'initiator' && role !== 'responder') {
|
|
275
|
+
console.error('ERROR: Set ROLE to initiator or responder');
|
|
276
|
+
process.exit(1);
|
|
277
|
+
}
|
|
278
|
+
const isInitiator = role === 'initiator';
|
|
279
|
+
log(`Role: ${role}`);
|
|
280
|
+
log(`Peer Twin ID: ${peerTwinId}`);
|
|
281
|
+
if (testFilter)
|
|
282
|
+
log(`Running only: ${testFilter}`);
|
|
283
|
+
try {
|
|
284
|
+
log('\nConnecting to PhyHub...');
|
|
285
|
+
const client = await index_1.PhyHubClient.connect();
|
|
286
|
+
log('Connected!\n');
|
|
287
|
+
const tests = [
|
|
288
|
+
{ name: 'default', fn: testDataChannelDefault },
|
|
289
|
+
{ name: 'named', fn: testDataChannelNamed },
|
|
290
|
+
{ name: 'reconnect', fn: testDataChannelReconnection },
|
|
291
|
+
{ name: 'media', fn: testMediaStreamConnection },
|
|
292
|
+
{ name: 'media-named', fn: testMediaStreamNamed },
|
|
293
|
+
];
|
|
294
|
+
for (const test of tests) {
|
|
295
|
+
if (!testFilter || test.name === testFilter) {
|
|
296
|
+
await test.fn(client, peerTwinId, isInitiator);
|
|
297
|
+
await sleep(2000);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
console.log('\n' + '='.repeat(60));
|
|
301
|
+
console.log('TEST SUMMARY');
|
|
302
|
+
console.log('='.repeat(60));
|
|
303
|
+
console.log('Test'.padEnd(30) + 'Status');
|
|
304
|
+
console.log('-'.repeat(45));
|
|
305
|
+
let passed = 0;
|
|
306
|
+
let failed = 0;
|
|
307
|
+
for (const r of results) {
|
|
308
|
+
const status = r.passed ? '\x1b[32mPASS\x1b[0m' : '\x1b[31mFAIL\x1b[0m';
|
|
309
|
+
console.log(r.name.padEnd(30) + status);
|
|
310
|
+
if (r.passed)
|
|
311
|
+
passed++;
|
|
312
|
+
else
|
|
313
|
+
failed++;
|
|
314
|
+
}
|
|
315
|
+
console.log('-'.repeat(45));
|
|
316
|
+
console.log(`Total: ${passed} passed, ${failed} failed`);
|
|
317
|
+
console.log('='.repeat(60));
|
|
318
|
+
process.exit(failed > 0 ? 1 : 0);
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
console.error('\n[FATAL]', error);
|
|
322
|
+
process.exit(1);
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
if (require.main === module) {
|
|
326
|
+
main();
|
|
327
|
+
}
|
|
328
|
+
//# sourceMappingURL=webrtc-comprehensive-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webrtc-comprehensive-test.js","sourceRoot":"","sources":["../../src/test/webrtc-comprehensive-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webrtc-reconnect-test.d.ts","sourceRoot":"","sources":["../../src/test/webrtc-reconnect-test.ts"],"names":[],"mappings":"AA4CA,iBAAe,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8GjE;AAED,iBAAe,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyIjE;AAmDD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
|