@tapflowio/ios-agent 0.18.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/TapflowNetFilter.app/Contents/CodeResources +0 -0
- package/bin/TapflowNetFilter.app/Contents/Info.plist +48 -0
- package/bin/TapflowNetFilter.app/Contents/Library/SystemExtensions/dev.tapflow.netfilter.ext.systemextension/Contents/Info.plist +58 -0
- package/bin/TapflowNetFilter.app/Contents/Library/SystemExtensions/dev.tapflow.netfilter.ext.systemextension/Contents/MacOS/dev.tapflow.netfilter.ext +0 -0
- package/bin/TapflowNetFilter.app/Contents/Library/SystemExtensions/dev.tapflow.netfilter.ext.systemextension/Contents/_CodeSignature/CodeResources +123 -0
- package/bin/TapflowNetFilter.app/Contents/Library/SystemExtensions/dev.tapflow.netfilter.ext.systemextension/Contents/embedded.provisionprofile +0 -0
- package/bin/TapflowNetFilter.app/Contents/MacOS/TapflowNetFilter +0 -0
- package/bin/TapflowNetFilter.app/Contents/PkgInfo +1 -0
- package/bin/TapflowNetFilter.app/Contents/_CodeSignature/CodeResources +151 -0
- package/bin/TapflowNetFilter.app/Contents/embedded.provisionprofile +0 -0
- package/bin/libtapflow-nethook.dylib +0 -0
- package/dist/DeviceChromeLoader.d.ts +2 -45
- package/dist/DeviceChromeLoader.d.ts.map +1 -1
- package/dist/DeviceChromeLoader.js.map +1 -1
- package/dist/IOSAgent.d.ts +196 -3
- package/dist/IOSAgent.d.ts.map +1 -1
- package/dist/IOSAgent.js +782 -128
- package/dist/IOSAgent.js.map +1 -1
- package/dist/KeyboardHelperDaemon.d.ts.map +1 -1
- package/dist/KeyboardHelperDaemon.js +2 -1
- package/dist/KeyboardHelperDaemon.js.map +1 -1
- package/dist/MjpegStreamer.d.ts.map +1 -1
- package/dist/MjpegStreamer.js +9 -1
- package/dist/MjpegStreamer.js.map +1 -1
- package/dist/SimctlWrapper.d.ts +70 -1
- package/dist/SimctlWrapper.d.ts.map +1 -1
- package/dist/SimctlWrapper.js +118 -3
- package/dist/SimctlWrapper.js.map +1 -1
- package/dist/SimulatorNetwork.d.ts +369 -0
- package/dist/SimulatorNetwork.d.ts.map +1 -0
- package/dist/SimulatorNetwork.js +899 -0
- package/dist/SimulatorNetwork.js.map +1 -0
- package/dist/TouchHelper.d.ts +53 -14
- package/dist/TouchHelper.d.ts.map +1 -1
- package/dist/TouchHelper.js +237 -59
- package/dist/TouchHelper.js.map +1 -1
- package/dist/childProcessKill.d.ts +3 -0
- package/dist/childProcessKill.d.ts.map +1 -0
- package/dist/childProcessKill.js +19 -0
- package/dist/childProcessKill.js.map +1 -0
- package/package.json +13 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimctlWrapper.js","sourceRoot":"","sources":["../src/SimctlWrapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SimctlWrapper.js","sourceRoot":"","sources":["../src/SimctlWrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE1E,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AACzC,MAAM,eAAe,GAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAA;AAElF,qEAAqE;AACrE,qGAAqG;AACrG,wGAAwG;AACxG,4EAA4E;AAC5E,MAAM,iBAAiB,GAA2B;IAChD,EAAE,EAAI,8BAA8B;IACpC,EAAE,EAAI,qCAAqC;IAC3C,EAAE,EAAI,qDAAqD;IAC3D,EAAE,EAAI,8BAA8B;IACpC,EAAE,EAAI,8BAA8B;IACpC,EAAE,EAAI,+BAA+B;IACrC,EAAE,EAAI,+BAA+B;IACrC,EAAE,EAAI,kCAAkC;IACxC,EAAE,EAAI,+BAA+B;IACrC,EAAE,EAAI,2BAA2B;IACjC,EAAE,EAAI,4BAA4B;CACnC,CAAA;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;IAC7C,OAAO,iBAAiB,CAAC,IAAI,CAAC,IAAI,8BAA8B,CAAA;AAClE,CAAC;AAGD,2FAA2F;AAC3F,2FAA2F;AAC3F,MAAM,wBAAwB,GAAG,KAAK,CAAA;AAEtC,4FAA4F;AAC5F,8FAA8F;AAC9F,8FAA8F;AAC9F,qCAAqC;AACrC,MAAM,UAAU,SAAS,CAAC,CAAU;IAClC,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACtD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAClE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,IAAI,+BAA+B,CAAA;AAC/F,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAqB,MAAM,aAAa,CAAA;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAchE,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAA;IACvC,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,UAAU,CAAA;IAC3C,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,6DAA6D;AAC7D,SAAS,cAAc,CAAC,UAAkB;IACxC,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAC3D,IAAI,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IACxB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAA;AAC7C,CAAC;AAED,kFAAkF;AAClF,kFAAkF;AAClF,0FAA0F;AAC1F,MAAM,UAAU,oBAAoB,CAAC,GAAY;IAC/C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACjD,MAAM,CAAC,GAAG,GAA8C,CAAA;IACxD,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC9F,OAAO,sDAAsD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC1E,CAAC;AAED;qEACqE;AACrE,MAAM,OAAO,sBAAuB,SAAQ,aAAa;CAAG;AAE5D,MAAM,OAAO,aAAa;IAGK;IAFZ,GAAG,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAEjD,YAA6B,SAAuB,aAAa;QAApC,WAAM,GAAN,MAAM,CAA8B;IAAG,CAAC;IAErE;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,SAAkB;QAClC,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS;YACpC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;YACrD,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;QAC9E,MAAM,MAAM,GAAqB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACnD,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,KAAK,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1E,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,CAAC,CAAA;YAC5C,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;gBAC/B,IAAI,CAAC,CAAC,CAAC,WAAW;oBAAE,SAAQ;gBAC5B,OAAO,CAAC,IAAI,CAAC;oBACX,EAAE,EAAE,CAAC,CAAC,IAAI;oBACV,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,QAAQ,EAAE,KAAK;oBACf,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC/B,MAAM,EAAE,CAAC,CAAC,oBAAoB;oBAC9B,SAAS;iBACV,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC1C,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,IAAI,EAAE,CAAA;YACxD,iCAAiC;YACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,gDAAgD,CAAC;gBAAE,OAAM;YAC7E,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED,6FAA6F;IAC7F,kGAAkG;IAClG,4FAA4F;IAC5F,+FAA+F;IAC/F,oGAAoG;IACpG,uGAAuG;IACvG,4EAA4E;IAC5E,MAAM,CAAU,qBAAqB,GAAG,MAAM,CAAA;IACtC,MAAM,CAAU,qBAAqB,GAAG,GAAG,CAAA;IACnD,oFAAoF;IACpF,iGAAiG;IACjG,sGAAsG;IACtG,sGAAsG;IACtG,gGAAgG;IACxF,MAAM,CAAU,yBAAyB,GAAG,KAAK,CAAA;IAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,OAII,EAAE;QAEN,MAAM,EACJ,SAAS,GAAG,aAAa,CAAC,qBAAqB,EAC/C,cAAc,GAAG,aAAa,CAAC,qBAAqB,EACpD,OAAO,GACR,GAAG,IAAI,CAAA;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;QACvC,IAAI,SAAS,GAAY,IAAI,CAAA;QAE7B,SAAS,CAAC;YACR,IAAI,OAAO,EAAE,EAAE;gBAAE,MAAM,IAAI,aAAa,CAAC,WAAW,QAAQ,iDAAiD,CAAC,CAAA;YAE9G,IAAI,MAA0B,CAAA;YAC9B,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;gBACzG,0FAA0F;gBAC1F,4FAA4F;gBAC5F,SAAS,GAAG,IAAI,CAAA;YAClB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,GAAG,GAAG,CAAA;YACjB,CAAC;YACD,IAAI,MAAM,EAAE,MAAM,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAA;YAE9C,+FAA+F;YAC/F,oEAAoE;YACpE,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,SAAS,KAAK,IAAI;oBAC7B,CAAC,CAAC,qBAAqB,SAAS,CAAC,SAAS,CAAC,EAAE;oBAC7C,CAAC,CAAC,cAAc,MAAM,EAAE,MAAM,IAAI,kBAAkB,EAAE,CAAA;gBACxD,MAAM,IAAI,aAAa,CAAC,UAAU,QAAQ,kCAAkC,SAAS,OAAO,IAAI,GAAG,CAAC,CAAA;YACtG,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC9C,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,IAAI,EAAE,CAAA;YACxD,6FAA6F;YAC7F,2FAA2F;YAC3F,gDAAgD;YAChD,IAAI,MAAM,CAAC,QAAQ,CAAC,sDAAsD,CAAC;gBAAE,OAAM;YACnF,MAAM,GAAG,CAAA;QACX,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgB;QAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC3C,CAAC;IAED,8FAA8F;IAC9F,6FAA6F;IAC7F,gGAAgG;IAChG,wDAAwD;IACxD,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,QAAgB;QAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;IACrD,CAAC;IAED,4EAA4E;IAC5E,wEAAwE;IACxE,wEAAwE;IACxE,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,QAAgB;QAC/C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAA6B,CAAC,CAAC,CAAA;QAC9F,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QAC/E,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QAC5B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,aAAa,CAAC,qCAAqC,QAAQ,KAAK,SAAS,IAAI,qBAAqB,EAAE,CAAC,CAAA;QACjH,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;YAChC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAc,CAAC,CAAA;YACjE,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9F,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,OAAe;QAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAClD,CAAC;IAED,kGAAkG;IAClG,mFAAmF;IACnF,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,QAAgB;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC5D,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QACpC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,GAAW;QACzC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;IAClD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,IAAY;QAChD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAC5B,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,wBAAwB,EAAE,EACpD,QAAQ,EAAE,QAAQ,CACnB,CAAA;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,wFAAwF;YACxF,MAAM,IAAI,aAAa,CAAC,yCAAyC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;IAED,2FAA2F;IAC3F,uFAAuF;IACvF,0FAA0F;IAC1F,kHAAkH;IAClH,0EAA0E;IAC1E,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,IAAI,CAAC;YACH,0FAA0F;YAC1F,yFAAyF;YACzF,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CACnC,EAAE,SAAS,EAAE,wBAAwB,EAAE,SAAS,EAAE,mBAAmB,EAAE,EACvE,SAAS,EAAE,QAAQ,CACpB,CAAA;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,wCAAwC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;YACtE,MAAM,CAAC,YAAY,mBAAmB,CAAC,CAAC,CAAC,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,CAAA;QAC3G,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,SAAyB,KAAK;QAC3D,MAAM,GAAG,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;QAC7C,MAAM,OAAO,GAAG,GAAG,MAAM,EAAE,YAAY,UAAU,EAAE,IAAI,GAAG,EAAE,CAAA;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC3E,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC1C,CAAC;IACH,CAAC;IAED,sFAAsF;IACtF,qFAAqF;IACrF,mFAAmF;IACnF,6EAA6E;IAC7E,KAAK,CAAC,0BAA0B,CAAC,IAAY;QAC3C,IAAI,SAAmB,CAAA;QACvB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAA;YAC7F,0CAA0C;YAC1C,SAAS,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,GAAG,EAAE,CAAA;QAChB,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAElC,oFAAoF;QACpF,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;QAC1E,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,CAAA;QAEjE,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAEnF,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,CAAA;QAE1G,2EAA2E;QAC3E,mHAAmH;QACnH,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,CAAC,CAAA;QAC/F,CAAC;QAAC,MAAM,CAAC,CAAC,mCAAmC,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,WAAmF;QAC5G,MAAM,aAAa,CAAC,eAAe,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,mBAAmB,CAAC,IAAY,EAAE,OAAgB;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YACnD,OAAM;QACR,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACpB,YAAY,EAAE,IAAI,EAAE,UAAU,EAC9B,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,QAAQ,EACtB,gBAAgB,EAAE,cAAc,CACjC,CAAA;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,IAAY,EAAE,KAAa;QAC7D,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IAC3E,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY;QACrC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY;QACrC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;IACjB,CAAC"}
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
import type { NetworkStatePayload } from '@tapflowio/agent-core';
|
|
2
|
+
/**
|
|
3
|
+
* Take one simulator off the network, or put it back (#607).
|
|
4
|
+
*
|
|
5
|
+
* A simulator has no NIC to switch off — it is host processes sharing the Mac's network stack — so
|
|
6
|
+
* "offline" is assembled from three mechanisms, and the whole point of this class is that they are
|
|
7
|
+
* never applied separately:
|
|
8
|
+
*
|
|
9
|
+
* 1. **the host content filter** (`ios-netfilter`) drops the simulator's flows at the kernel
|
|
10
|
+
* 2. **the injected dylib** tells the app its path is unsatisfied, and cuts the connections it is
|
|
11
|
+
* already holding
|
|
12
|
+
* 3. **the status bar** stops showing service
|
|
13
|
+
*
|
|
14
|
+
* Each alone produces a false result a tester would sign off on. Layer 1 alone leaves the app
|
|
15
|
+
* believing it is online — measured: traffic dead, `NWPathMonitor` reporting satisfied for the life
|
|
16
|
+
* of the process — and leaves a pooled connection working. Layer 2 alone blocks nothing: faking
|
|
17
|
+
* `nw_path_get_status` does not stop `URLSession`, which reads the kernel's real path. Layer 3 alone
|
|
18
|
+
* is pixels.
|
|
19
|
+
*/
|
|
20
|
+
export interface SimulatorNetworkOptions {
|
|
21
|
+
/** The container app that owns the system extension. Absent or not installed means layer 1 cannot
|
|
22
|
+
* be applied, which this class reports rather than works around. */
|
|
23
|
+
filterHostBinary?: string;
|
|
24
|
+
/** Where the dylib looks for its per-simulator flag. The host's `/tmp` is visible at the same path
|
|
25
|
+
* inside every simulator on the Mac, which is why the file name carries the udid. */
|
|
26
|
+
conditionDir?: string;
|
|
27
|
+
/** Where the dylib writes what its self-check found. */
|
|
28
|
+
verdictDir?: string;
|
|
29
|
+
/** The injected library. Overridable so a test never arms a real simulator. */
|
|
30
|
+
nethookDylib?: string;
|
|
31
|
+
/** Where the provider's state file may be, most likely first. Overridable so a test can point at a
|
|
32
|
+
* file it writes rather than at whatever the Mac's real filter is doing. */
|
|
33
|
+
filterStateFiles?: string[];
|
|
34
|
+
/** Called when a device that was offline stops being enforced. The agent turns this into an
|
|
35
|
+
* unsolicited `network:state`; nothing here knows about the wire. */
|
|
36
|
+
onEnforcementLost?: (udid: string) => void;
|
|
37
|
+
/** How often liveness is checked. Overridable so a test does not have to spend seconds of wall
|
|
38
|
+
* clock proving that a stale file is noticed; the threshold itself comes from the file. */
|
|
39
|
+
livenessIntervalMs?: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* How long after a launch an absent verdict is still ordinary (#629).
|
|
43
|
+
*
|
|
44
|
+
* **Derived from the dylib rather than picked.** Its verdict is written from a
|
|
45
|
+
* `__attribute__((constructor))`, which reads as "milliseconds" and is wrong: the constructor runs
|
|
46
|
+
* `tf_self_check()` first, and that waits on a semaphore for up to **3 seconds** for a path update
|
|
47
|
+
* (`network-hook.m`). So a perfectly healthy install produces no verdict for three seconds after the
|
|
48
|
+
* process starts, plus whatever the launch itself took.
|
|
49
|
+
*
|
|
50
|
+
* 10s is that plus room for a loaded Mac starting a large app. Generous on purpose: past this the
|
|
51
|
+
* answer changes from "waiting" to "this cannot work", and being early would put that verdict on an
|
|
52
|
+
* install that was about to succeed. The cost of being late is that a tester sees `awaiting-app` for a
|
|
53
|
+
* few seconds longer — which is the true answer for those seconds.
|
|
54
|
+
*/
|
|
55
|
+
export declare const LAUNCH_VERDICT_DEADLINE_MS = 10000;
|
|
56
|
+
/** The simctl calls this needs. Narrower than `SimctlWrapper` so a test can stand in for it. */
|
|
57
|
+
interface SimctlForNetwork {
|
|
58
|
+
setStatusBarOffline(udid: string, offline: boolean): Promise<void>;
|
|
59
|
+
setSimulatorEnv(udid: string, name: string, value: string): Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
export declare class SimulatorNetwork {
|
|
62
|
+
private readonly simctl;
|
|
63
|
+
private readonly hostBinary;
|
|
64
|
+
private readonly conditionDir;
|
|
65
|
+
private readonly verdictDir;
|
|
66
|
+
private readonly dylib;
|
|
67
|
+
/** Every simulator currently offline. The filter takes the whole set on each call — it has no
|
|
68
|
+
* add/remove — so this is the authority for what the rule should say, not a cache of it. */
|
|
69
|
+
private readonly offline;
|
|
70
|
+
/** Devices whose injection is actually in place. Separates "nothing was delivered" from "delivered,
|
|
71
|
+
* no app has run under it yet" — two states with different remedies, and a reason each. */
|
|
72
|
+
private readonly armed;
|
|
73
|
+
/** Serialises **whole operations**, not just the host run. See `serialize`. */
|
|
74
|
+
private filterQueue;
|
|
75
|
+
/** Set while a liveness check is queued, so a slow toggle does not let ticks pile up behind it. */
|
|
76
|
+
private livenessQueued;
|
|
77
|
+
/** What layer 1 was last found doing, per device. See `FilterVerdict` for why it is remembered. */
|
|
78
|
+
private readonly filterVerdict;
|
|
79
|
+
/** When each device's offline rule was confirmed, in whole seconds. Read by `checkLiveness` to tell
|
|
80
|
+
* a file that disagrees from one that is simply older than the write. */
|
|
81
|
+
private readonly offlineSince;
|
|
82
|
+
/**
|
|
83
|
+
* The drop count last reported for each offline device (#654).
|
|
84
|
+
*
|
|
85
|
+
* **Two things need it.** The liveness check runs every second, so a device with any drops at all
|
|
86
|
+
* would otherwise repeat the same line 600 times in a ten-minute session — into the stream where
|
|
87
|
+
* the enforcement-lost report a person is actually looking for arrives. And the provider's count is
|
|
88
|
+
* per episode but the *file* is a snapshot: only an increase since the last read is news.
|
|
89
|
+
*
|
|
90
|
+
* Cleared wherever `offlineSince` is, so a device that goes offline again starts from nothing —
|
|
91
|
+
* an absent entry reads as zero, and the provider prunes its own counts per episode too, so both
|
|
92
|
+
* ends forget together.
|
|
93
|
+
*/
|
|
94
|
+
private readonly dropsReported;
|
|
95
|
+
/**
|
|
96
|
+
* When a launch was last issued for each device (#629).
|
|
97
|
+
*
|
|
98
|
+
* A timestamp rather than a timer: `state()` is synchronous and called from several paths, and there
|
|
99
|
+
* is nothing to cancel — a second launch overwrites this, and a verdict arriving makes it
|
|
100
|
+
* irrelevant. A timer would have to be cancelled on both.
|
|
101
|
+
*/
|
|
102
|
+
private readonly launchedAt;
|
|
103
|
+
/** The pid of the last launch that actually started a process, per device. See `markLaunched`. */
|
|
104
|
+
private readonly launchedPid;
|
|
105
|
+
/** Runs only while something is offline. See `updateLiveness`. */
|
|
106
|
+
private liveness;
|
|
107
|
+
/** Set by `dispose`. Without it, work that was already in flight puts the interval back: both
|
|
108
|
+
* `setOffline` and `checkLiveness` call `updateLiveness()` *after* their awaits, so a dispose
|
|
109
|
+
* landing in between was undone by whichever of them resumed next.
|
|
110
|
+
*
|
|
111
|
+
* **No test reaches this flag, and one that appeared to was deleted rather than kept.** The
|
|
112
|
+
* scenario it needs — a dispose landing mid-operation, then a state file that makes the watcher
|
|
113
|
+
* report on its next tick — did not report even with the flag removed *and* `clearInterval` taken
|
|
114
|
+
* out of `dispose`, so the assertion was green against every mutation of the thing it named.
|
|
115
|
+
* Observing the watcher stop needs a seam this class does not have (#664). The flag stays because
|
|
116
|
+
* it is correct and costs one comparison; what it does not have is coverage, and saying so here is
|
|
117
|
+
* cheaper than a test that says otherwise. */
|
|
118
|
+
private disposed;
|
|
119
|
+
private readonly stateFiles;
|
|
120
|
+
private enforcementLost;
|
|
121
|
+
private readonly livenessIntervalMs;
|
|
122
|
+
constructor(simctl: SimctlForNetwork, opts?: SimulatorNetworkOptions);
|
|
123
|
+
/**
|
|
124
|
+
* Put the injection in place for a device that has just booted.
|
|
125
|
+
*
|
|
126
|
+
* **Clearing comes first, and it is not tidiness.** The condition file and the verdict both outlive
|
|
127
|
+
* the simulator that wrote them — they are on the host, keyed only by udid — so a device that boots
|
|
128
|
+
* into a leftover condition file is offline before anyone asked, and a leftover verdict answers for
|
|
129
|
+
* hooks that belong to a process which no longer exists.
|
|
130
|
+
*
|
|
131
|
+
* The library is armed here and the target app is not, because the target is not known yet. Until
|
|
132
|
+
* `target()` names one the dylib loads into every process in the simulator and hooks none of them,
|
|
133
|
+
* which is its designed default.
|
|
134
|
+
*/
|
|
135
|
+
arm(udid: string): Promise<void>;
|
|
136
|
+
private armLocked;
|
|
137
|
+
/**
|
|
138
|
+
* Name the app the hooks may touch.
|
|
139
|
+
*
|
|
140
|
+
* **Must be called before the app is launched.** dyld reads the environment when a process starts,
|
|
141
|
+
* so naming the target afterwards arms the *next* launch and leaves the running one unhooked —
|
|
142
|
+
* reporting `available: true` for an app that would never see a path update.
|
|
143
|
+
*
|
|
144
|
+
* **The previous app's verdict goes with it.** A verdict is one process's report that its own hooks
|
|
145
|
+
* took, and that process has exited by the time a second app is launched. Leaving the file behind
|
|
146
|
+
* answered for the new app on the old one's evidence: `available: true` before the new process had
|
|
147
|
+
* written anything, and — if its hooks fail — for as long as it runs. The gap where `state()`
|
|
148
|
+
* answers `awaiting-app` for a launch already in flight is the correct reading of that moment;
|
|
149
|
+
* inheriting a stale `ok` is not.
|
|
150
|
+
*/
|
|
151
|
+
target(udid: string, bundleId: string): Promise<void>;
|
|
152
|
+
/**
|
|
153
|
+
* A process started, so a verdict is now owed — `markLaunched` opens the window `state()` measures.
|
|
154
|
+
*
|
|
155
|
+
* **Called after the launch, not before it, and that is a correction.** The mark was first set at
|
|
156
|
+
* the top of `target()`, which put `simctl spawn … launchctl setenv`, `simctl launch` and the app's
|
|
157
|
+
* whole dyld load *inside* the budget — none of it measured — and left the mark standing when the
|
|
158
|
+
* launch failed outright, so a launch that never happened reported the hooks as broken ten seconds
|
|
159
|
+
* later.
|
|
160
|
+
*
|
|
161
|
+
* **Only for a pid that is new.** `simctl launch` is issued without `--terminate-running-process`,
|
|
162
|
+
* so launching a bundle that is already running returns the existing pid and starts nothing. The
|
|
163
|
+
* verdict is written from a dyld constructor — once per process — so nothing will rewrite the file
|
|
164
|
+
* `target()` just deleted, and starting a deadline there would report a permanently dead control
|
|
165
|
+
* over an app whose hooks are live and watching. That case stays what it was before this change,
|
|
166
|
+
* which is wrong but harmless; #692 has the decision it needs.
|
|
167
|
+
*/
|
|
168
|
+
markLaunched(udid: string, pid: number | null): void;
|
|
169
|
+
/**
|
|
170
|
+
* **Layer 1 leads in both directions, and the order is measured rather than chosen.**
|
|
171
|
+
*
|
|
172
|
+
* Going offline, the dylib cuts the app's open sockets the moment the flag file appears. If the
|
|
173
|
+
* filter were not already dropping new flows at that instant, the app would simply reconnect —
|
|
174
|
+
* reproduced exactly that way while stepping the layers separately, and the reconnected socket then
|
|
175
|
+
* survived the rest of the session.
|
|
176
|
+
*
|
|
177
|
+
* Coming back, the filter has to stop dropping before the app is told the path is satisfied, or the
|
|
178
|
+
* first thing it does with the good news is fail.
|
|
179
|
+
*
|
|
180
|
+
* The status bar goes last either way: it reports, so it should not claim a state before the state
|
|
181
|
+
* is true.
|
|
182
|
+
*/
|
|
183
|
+
setOffline(udid: string, offline: boolean): Promise<NetworkStatePayload>;
|
|
184
|
+
/** The body of `setOffline`, running with the queue held. Calls `runFilterHost` directly: going
|
|
185
|
+
* through `serialize` again from in here would wait on a slot this call already owns. */
|
|
186
|
+
private setOfflineLocked;
|
|
187
|
+
/**
|
|
188
|
+
* Write the rule and **ask the provider whether it is holding it.**
|
|
189
|
+
*
|
|
190
|
+
* The write's exit code cannot answer that. The container app exits when the framework accepts the
|
|
191
|
+
* save — 27ms for the whole run — and the running provider is handed the configuration afterwards
|
|
192
|
+
* with nothing coming back. Measured propagation is under 55ms and a probe measured the ask itself
|
|
193
|
+
* at 0.26–0.74ms, which is what makes asking cheaper than the six-second wait an earlier draft
|
|
194
|
+
* proposed in place of it.
|
|
195
|
+
*
|
|
196
|
+
* **The predicate is per-device membership, not set equality.** The filter is host-wide and this
|
|
197
|
+
* agent is not guaranteed to be its only writer; comparing whole sets would report every device as
|
|
198
|
+
* unenforced the moment somebody else's device appeared in the rule.
|
|
199
|
+
*
|
|
200
|
+
* **`wanted` is the value the caller asked for, and it is a parameter for that reason.** Reading it
|
|
201
|
+
* back off `this.offline` here compares the provider's answer against whatever the set says *now*,
|
|
202
|
+
* which is not necessarily what this call wrote — so a second toggle landing in between made a
|
|
203
|
+
* confirmation agree with a rule its own request had not asked for, and the success path then
|
|
204
|
+
* applied layers 2 and 3 for the wrong direction.
|
|
205
|
+
*
|
|
206
|
+
* A mismatch is logged **with what was actually read**. Two agents writing the same rule cannot be
|
|
207
|
+
* told apart afterwards from a log that only records what each one expected — each is internally
|
|
208
|
+
* consistent and one of them is stale.
|
|
209
|
+
*/
|
|
210
|
+
private applyAndConfirm;
|
|
211
|
+
/** Ask the running provider what it is enforcing. `undefined` for every way of not finding out —
|
|
212
|
+
* the remedy is the same whether the filter is absent, disabled, or restarting. */
|
|
213
|
+
private confirmEnforcement;
|
|
214
|
+
/** Layers 2 and 3, taken down together. Layer 3 is swallowed for the reason `forget` gives: it only
|
|
215
|
+
* reports, and failing it would abandon the cleanup that matters. */
|
|
216
|
+
private takeDownLayers;
|
|
217
|
+
/**
|
|
218
|
+
* What the device is doing and whether tapflow can still steer it.
|
|
219
|
+
*
|
|
220
|
+
* `offline` describes the **device**, not the last request: a simulator taken offline and then left
|
|
221
|
+
* unsteerable is still offline, and saying otherwise would draw "online" over an app that can reach
|
|
222
|
+
* nothing.
|
|
223
|
+
*/
|
|
224
|
+
state(udid: string): NetworkStatePayload;
|
|
225
|
+
/** Called when a device goes away, so a shutdown simulator does not keep a rule alive that names
|
|
226
|
+
* it — the filter would carry the udid for the rest of the host's uptime. */
|
|
227
|
+
forget(udid: string): Promise<void>;
|
|
228
|
+
private forgetLocked;
|
|
229
|
+
/**
|
|
230
|
+
* Point the report somewhere after construction.
|
|
231
|
+
*
|
|
232
|
+
* **The constructor option alone left this untestable, which a review found by mutating the wiring
|
|
233
|
+
* away and watching the whole suite stay green.** `IOSAgent` builds its own `SimulatorNetwork` only
|
|
234
|
+
* when one was not injected, and every test injects one — so the handler was attached on exactly the
|
|
235
|
+
* path no test takes. The one channel that tells a tester their finished check was invalidated had
|
|
236
|
+
* no coverage at all, while the refusal path beside it had five tests.
|
|
237
|
+
*/
|
|
238
|
+
setEnforcementLostHandler(fn: (udid: string) => void): void;
|
|
239
|
+
/**
|
|
240
|
+
* Stop watching. **Nothing else clears the interval**, so an agent that shuts down while a device
|
|
241
|
+
* is offline would otherwise keep a timer alive for the life of the process — which is what
|
|
242
|
+
* happened, because for a while this had no caller outside the tests at all. `IOSAgent.disconnect`
|
|
243
|
+
* owns it, beside the resources timer and the tree reader it already stops.
|
|
244
|
+
*/
|
|
245
|
+
dispose(): void;
|
|
246
|
+
/**
|
|
247
|
+
* Undo `dispose`, because an agent that disconnected can connect again on the same instance.
|
|
248
|
+
*
|
|
249
|
+
* **A one-way disposed flag is a bug with the shape of the one it fixes**, and this codebase has
|
|
250
|
+
* already shipped it once: the provider's `Heartbeat.stopped` was set by a stop and cleared by
|
|
251
|
+
* nothing, so the first `stopFilter` in a process killed the state file for good while the filter
|
|
252
|
+
* went on filtering. Here it would be quieter and worse — `connect()` is public and reuses the
|
|
253
|
+
* network, so a reconnect after a disconnect would leave the watcher off, and the one report that
|
|
254
|
+
* tells a tester their check was invalidated would simply never come.
|
|
255
|
+
*/
|
|
256
|
+
resume(): void;
|
|
257
|
+
/**
|
|
258
|
+
* Watch only while something is offline, because that is the only time there is anything to lose.
|
|
259
|
+
*
|
|
260
|
+
* The interval is `unref`'d: this must not be the reason a process stays alive.
|
|
261
|
+
*/
|
|
262
|
+
private updateLiveness;
|
|
263
|
+
/**
|
|
264
|
+
* Notice that a device stopped being enforced, and say so.
|
|
265
|
+
*
|
|
266
|
+
* **Why this exists at all, given the confirmation on the write.** The confirmation answers the
|
|
267
|
+
* moment of the request; enforcement can stop at any point afterwards, and when it does the tester
|
|
268
|
+
* is looking at a control that still says offline. Measured on the reference Mac: killing the
|
|
269
|
+
* provider leaves the kernel passing that simulator's traffic for about 5.8 seconds before launchd
|
|
270
|
+
* has it back, and 23 to 27 requests got through each time. The tester's sign-off covers requests
|
|
271
|
+
* that succeeded.
|
|
272
|
+
*
|
|
273
|
+
* **The threshold comes out of the file.** Three pulses, at whatever rate the provider says it is
|
|
274
|
+
* pulsing — 1s while it is enforcing, so about three seconds. Hard-coding fifteen (three of the old
|
|
275
|
+
* five-second pulses) is what made the outage above arithmetically invisible: the gap closes before
|
|
276
|
+
* the threshold expires and nothing is ever reported.
|
|
277
|
+
*
|
|
278
|
+
* **A timestamp in the future is not freshness, it is a file that cannot be trusted.** Clocks move
|
|
279
|
+
* backwards — NTP corrections, a sleeping Mac — and treating `at > now` as "very fresh" would make
|
|
280
|
+
* a stale file look perfect for as long as the skew lasted.
|
|
281
|
+
*/
|
|
282
|
+
private checkLiveness;
|
|
283
|
+
/**
|
|
284
|
+
* **Three questions per device, and each one is a different piece of evidence.** A single "is the
|
|
285
|
+
* file stale" test read against the whole set could not answer them, and the gap it left is
|
|
286
|
+
* measured: the provider publishes its pulse rate *as of the rule it held when it wrote*, so the
|
|
287
|
+
* last write before a device went offline says `pulseSeconds: 5`. A provider dying in the second
|
|
288
|
+
* after a toggle therefore leaves a file that is not stale by its own declared rate for fifteen
|
|
289
|
+
* seconds, and does not name the device either — both predicates false, nothing reported, and the
|
|
290
|
+
* kernel passing that simulator's traffic for the whole of it.
|
|
291
|
+
*/
|
|
292
|
+
private checkLivenessLocked;
|
|
293
|
+
/** The first candidate that parses wins. A file that is present but unreadable is not evidence of
|
|
294
|
+
* anything, so it is treated as absent rather than as a reason to stop looking. */
|
|
295
|
+
private readFilterState;
|
|
296
|
+
/**
|
|
297
|
+
* **Serialised, and bounded in time.**
|
|
298
|
+
*
|
|
299
|
+
* The host takes the whole offline set on each run and the last writer wins, so two of these in
|
|
300
|
+
* flight at once decide the rule by which subprocess happens to finish last rather than by which
|
|
301
|
+
* request came last. Two devices toggled in the same second is enough — and the set each one reads
|
|
302
|
+
* is correct, which is what makes the wrong outcome hard to see afterwards: both runs are internally
|
|
303
|
+
* consistent and one of them is stale.
|
|
304
|
+
*
|
|
305
|
+
* **What is serialised is the whole operation, and an earlier version serialised only the host
|
|
306
|
+
* run.** That version released the queue the moment the rule was written, so the confirmation that
|
|
307
|
+
* follows ran outside it — and a review found two ways that breaks. A liveness tick landing between
|
|
308
|
+
* a device joining the offline set and its confirmation declared that device's enforcement lost,
|
|
309
|
+
* rewrote the rule without it, took layers 2 and 3 down, and told every session; the confirmation
|
|
310
|
+
* then came back, compared against a set the tick had already edited, agreed with itself, and put
|
|
311
|
+
* layers 2 and 3 **back on** over a kernel rule that no longer named the device. Two toggles of the
|
|
312
|
+
* same device overlapping produced the mirror image: a fully healthy-looking offline control with
|
|
313
|
+
* layer 2 taken down under it. Both end in the state this class exists to prevent — the app told it
|
|
314
|
+
* is offline while its requests succeed — so the boundary has to contain the confirmation, and
|
|
315
|
+
* every reader and writer of `offline` has to be inside it.
|
|
316
|
+
*
|
|
317
|
+
* The timeout covers a host that never returns. It waits on `OSSystemExtensionRequest`, and one of
|
|
318
|
+
* its outcomes is a System Settings dialog nobody is standing in front of; the binary now exits
|
|
319
|
+
* itself on that path, but a timeout here is what keeps a wedge from taking the queue with it —
|
|
320
|
+
* everything after it is waiting on this chain.
|
|
321
|
+
*/
|
|
322
|
+
private serialize;
|
|
323
|
+
/**
|
|
324
|
+
* The container app writes the rule and exits.
|
|
325
|
+
*
|
|
326
|
+
* **Its exit is not the confirmation.** Zero means the container app launched and the framework
|
|
327
|
+
* accepted the save — the whole run is 27ms, measured — and the running provider is handed the new
|
|
328
|
+
* configuration afterwards, with nothing coming back to say it has it. So this answers "nothing
|
|
329
|
+
* refused"; whether the device is actually offline is answered by `state()`, from evidence the
|
|
330
|
+
* dylib wrote inside the simulator.
|
|
331
|
+
*/
|
|
332
|
+
/**
|
|
333
|
+
* **Names the devices it is changing, and nothing else.**
|
|
334
|
+
*
|
|
335
|
+
* This used to write `[...this.offline]` — the whole set — and the host replaced the rule with it.
|
|
336
|
+
* The rule is host-wide, so that made every run an assertion about devices this agent had never
|
|
337
|
+
* heard of: a second agent starting knows of no offline device, and `arm()` runs on every device
|
|
338
|
+
* boot, so **starting one put every device the other had taken offline back online**, silently,
|
|
339
|
+
* while its tester watched an offline control over working traffic.
|
|
340
|
+
*
|
|
341
|
+
* A delta cannot say anything about a device it does not name. The cleanup the whole-set write used
|
|
342
|
+
* to provide is not lost, only made precise: `armLocked` names the udid that just booted in
|
|
343
|
+
* `remove`, and a rule left behind by a dead process is cleared the next time that device comes up
|
|
344
|
+
* rather than by wiping the host's.
|
|
345
|
+
*/
|
|
346
|
+
private runFilterHost;
|
|
347
|
+
private conditionPath;
|
|
348
|
+
private setCondition;
|
|
349
|
+
/**
|
|
350
|
+
* `missing`, `failed` and `unreadable` are three different answers and a tester needs all of them.
|
|
351
|
+
*
|
|
352
|
+
* Missing is not by itself an answer — it is the same file being absent whether the injection was
|
|
353
|
+
* never delivered or is simply waiting for its first app, which is why `state` reads it against
|
|
354
|
+
* `armed` rather than reporting it directly. Failed means the dylib ran and proved by trying that
|
|
355
|
+
* its hooks did not take, which no amount of relaunching will change.
|
|
356
|
+
*
|
|
357
|
+
* Unreadable is neither, and folding it into `failed` was this reader claiming evidence it does not
|
|
358
|
+
* have: a file this reader cannot parse says nothing about whether the hooks took. **The library
|
|
359
|
+
* now writes it with `rename` and no longer produces torn ones (#653)**, which removes the cause
|
|
360
|
+
* that was reachable on a healthy session — not the member. A simulator still running an app that
|
|
361
|
+
* was launched by an older dylib writes the old way, and a file whose shape this reader does not
|
|
362
|
+
* recognise is unreadable however it got there. Unlike the other two it is **not** resolved against
|
|
363
|
+
* `armed` — see `state` for why that would be worse than the problem.
|
|
364
|
+
*/
|
|
365
|
+
private verdictPath;
|
|
366
|
+
private readVerdict;
|
|
367
|
+
}
|
|
368
|
+
export {};
|
|
369
|
+
//# sourceMappingURL=SimulatorNetwork.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimulatorNetwork.d.ts","sourceRoot":"","sources":["../src/SimulatorNetwork.ts"],"names":[],"mappings":"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"}
|